使用 Python 将 html 转换为文本
问题:使用 Python 将 html 转换为文本 我正在尝试使用 Python 将 html 块转换为文本。 输入: <div class="body"><p><strong></strong></p> <p><strong></strong>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligu
·
问题:使用 Python 将 html 转换为文本
我正在尝试使用 Python 将 html 块转换为文本。
输入:
<div class="body"><p><strong></strong></p>
<p><strong></strong>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa</p>
<p>Consectetuer adipiscing elit. <a href="http://example.com/" target="_blank" class="source">Some Link</a> Aenean commodo ligula eget dolor. Aenean massa</p>
<p>Aenean massa.Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa</p>
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa</p>
<p>Consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa</p></div>
期望的输出:
我们很高兴欢迎您,客户服务提供商。 Aenean的好运需要痛苦。茉莉香块
随之而来的肥胖精英。一些 Link Aenean 的抽屉柜购买痛苦。埃涅斯质量
艾尼安马萨。 Aenean的好运需要痛苦。茉莉香块
我们很高兴欢迎您,客户服务提供商。 Aenean的好运需要痛苦。茉莉香块
随之而来的肥胖精英。埃涅斯五斗柜。埃涅斯质量
我尝试了html2text
模块但没有取得多大成功:
#!/usr/bin/env python
import urllib2
import html2text
from BeautifulSoup import BeautifulSoup
soup = BeautifulSoup(urllib2.urlopen('http://example.com/page.html').read())
txt = soup.find('div', {'class' : 'body'})
print(html2text.html2text(txt))
txt
对象生成上面的 html 块。我想将其转换为文本并在屏幕上打印。
解答
soup.get_text()
输出你想要的:
from bs4 import BeautifulSoup
soup = BeautifulSoup(html)
print(soup.get_text())
输出:
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa
Consectetuer adipiscing elit. Some Link Aenean commodo ligula eget dolor. Aenean massa
Aenean massa.Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa
Consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa
要保留换行符:
print(soup.get_text('\n'))
为了与您的示例相同,您可以用两个换行符替换换行符:
soup.get_text().replace('\n','\n\n')
更多推荐
已为社区贡献126475条内容
所有评论(0)