如何在BeautifulSoup中保留Django模板代码的有效性

时间:2018-05-01 23:36:21

标签: python html django beautifulsoup

我正在尝试使用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" %}">

我也尝试使用html5liblxml解析器。 lxml解析器的输出与上面略有不同,但仍然无效。

有没有办法使用Beautiful Soup输出有效的Django模板代码,或者我是否达到了设计目标的极限?

1 个答案:

答案 0 :(得分:1)

你有两套双引号,这就是为什么BeautifulSoup认为你的字符串应该分成多个属性。尝试在Django部分中使用单引号:

django_string = '<a href="{% url \'some_url\' %}">'