如何防止BeautifulSoup转换实体?

时间:2013-11-16 02:09:17

标签: python html beautifulsoup

我有一个名为 keyword 的BeautifulSoup标签,当我使用keyword.decode(formatter=None)时 为了得到html文本,我得到了这个

<pre><span id="VAL(<>)"><span class="keyword">val</span> (<>)</span> : <code class="type">'a -> 'a -> bool</code></pre>

但原始的html文字是

<pre><span id="VAL(<>)"><span class="keyword">val</span> (&lt;&gt;)</span> : <code class="type">'a -> 'a -> bool</code></pre><div class="info ">

您可以看到&lt;&gt;已转换为<>。我只想让文本与原始html文件中的文本完全相同。那么如何防止这种转换?

2 个答案:

答案 0 :(得分:0)

我认为它在原版

中遗漏了一些东西
<pre><span id="VAL(<>)"><span class="keyword">val</span> <span>(&lt;&gt;)</span> : <code class="type">'a -> 'a -> bool</code></pre><div class="info ">

<span>(&lt;&gt;)</span>

或者它还有一个额外的

 </span>

答案 1 :(得分:0)

不要使用formatter=None,而是让它成为。 BeautifulSoup不会转换它。

>>> soup.prettify(formatter=None)
u'<pre>\n <span id="VAL(<>)">\n  <span class="keyword">\n   val\n  </span>\n  (<>)\n </span>\n :\n <code class="type">\n  \'a -> \'a -> bool\n </code>\n</pre>\n<div class="info ">\n</div>'
>>> soup
<pre><span id="VAL(&lt;&gt;)"><span class="keyword">val</span> (&lt;&gt;)</span> : <code class="type">'a -&gt; 'a -&gt; bool</code></pre><div class="info ">
</div>
>>> soup.prettify()
u'<pre>\n <span id="VAL(&lt;&gt;)">\n  <span class="keyword">\n   val\n  </span>\n  (&lt;&gt;)\n </span>\n :\n <code class="type">\n  \'a -&gt; \'a -&gt; bool\n </code>\n</pre>\n<div class="info ">\n</div>'