我正在尝试使用Beautiful Soup操作一些Django模板。在某些情况下,当我通过BeautifulSoup
实例放置包含Django代码的html时,汤会输出无效的Django代码:
from bs4 import BeautifulSoup
django_string = '<a href="{% url "some_url" %}">'
soup = BeautifulSoup(django_string, 'html.parser')
print(soup)
<a %}"="" href="{% url " some_url"="">
# expected <a href="{% url "some_url" %}">
我也尝试使用html5lib
和lxml
解析器。 lxml
解析器的输出与上面略有不同,但仍然无效。
有没有办法使用Beautiful Soup输出有效的Django模板代码,或者我是否达到了设计目标的极限?
答案 0 :(得分:1)
你有两套双引号,这就是为什么BeautifulSoup认为你的字符串应该分成多个属性。尝试在Django部分中使用单引号:
django_string = '<a href="{% url \'some_url\' %}">'