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



我正在尝试使用Beautiful Soup对一些Django模板进行操作。在某些情况下,当我通过BeautifulSoup实例放置包含 Django 代码的 html 时,soup 输出无效的 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 模板代码,或者我是否达到了它设计目的的极限?

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

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

最新更新