0

我有一个标签,它只能作为字符串提供给我。示例:tag_str = '你好'

当我执行以下操作时:

template_logo_h1_tag.insert(0, tag_str)

其中 template_logo_h1_tag 是 h1 标签

生成的 template_logo_h1_tag 是

<h1 id="logo">&lt;a&gt;hello&lt;/a&gt;</h1>

我想避免这个 HTML 转义和生成的标签是

<h1 id="logo"><a>hello</a></h1>

有什么我想念的吗?我尝试了 BeautifulSoup.HTML_ENTITIES 但这可以取消转义已经“html-escaped”的字符串。如果您能帮助我,那就太好了!

4

2 回答 2

1

我发现了一个肮脏的黑客:

template_logo_h1_tag.insert(0, BeautifulSoup('hello').a)

于 2012-11-08T06:53:45.693 回答
1

我认为您正在寻找 Beautiful Soup 的 .append 方法:http ://www.crummy.com/software/BeautifulSoup/bs4/doc/#append

再加上创建新标签的工厂方法:soup.new_tag()

使用代码更新:

soup=BeautifulSoup('<h1 id="logo"></h1>')
template_logo_h1_tag=soup.h1
newtag=soup.new_tag("a")
newtag.append("hello")
template_logo_h1_tag.append(newtag)

然后

print soup.prettify

产量

<h1 id="logo">
 <a>
  hello
 </a>
</h1>
于 2012-11-08T21:22:44.487 回答