擅长:python、mysql、java
<p>我在尝试解析呈现的HTML时遇到了同样的问题。基本上看来BS并不是这方面的理想包。@Del提供了伟大的html2text解决方案。</p>
<p>关于一个不同的问题:<a href="https://stackoverflow.com/questions/10524387/beautifulsoup-get-text-does-not-strip-all-tags-and-javascript">BeautifulSoup get_text does not strip all tags and JavaScript</a>@Helge提到使用nltk。不幸的是,nltk似乎正在停止这种方法。</p>
<p>我尝试了html2text和nltk.clean_html,并对计时结果感到惊讶,因此认为它们为子孙后代提供了一个答案。当然,速度很大程度上取决于数据的内容。。。</p>
<p>@Helge(nltk)回复。</p>
<pre><code>import nltk
%timeit nltk.clean_html(html)
was returning 153 us per loop
</code></pre>
<p>使用呈现的html返回字符串非常有效。这个nltk模块甚至比html2text快,尽管html2text可能更健壮。</p>
<p>上面的答案来自@del</p>
<pre><code>betterHTML = html.decode(errors='ignore')
%timeit html2text.html2text(betterHTML)
%3.09 ms per loop
</code></pre>