使用python语言实现html到文本的转换

2024-05-18 07:14:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用Python从HTML文件中提取文本。我想要的输出与从浏览器复制文本并粘贴到记事本上的输出基本相同。在

我想要比使用正则表达式更健壮的东西,因为正则表达式在格式不好的HTML上可能会失败。我见过很多人推荐靓汤,但我在使用时遇到了一些问题。首先,它获取了不需要的文本,比如JavaScript源代码。而且,它不解释HTML实体。例如,我希望HTML源代码中的'转换为文本中的撇号,就像我将浏览器内容粘贴到记事本中一样。在

更新:html2text看起来很有前途。它正确地处理HTML实体并忽略JavaScript。但是,它并不完全生成纯文本;它生成的markdown必须转换为纯文本。它没有示例或文档,但是代码看起来很干净。在


Tags: 文件文本实体内容源代码粘贴html格式
2条回答

我不认为“从浏览器复制粘贴”是一个定义明确的操作。例如,如果整个页面被透明的浮动div覆盖,会发生什么?如果有桌子呢?动态内容呢?在

beauthoulsoup是一个功能强大的解析器;您只需要知道如何使用它(例如,从页面中删除script标记很容易)。幸运的是,它有很多documentation。在

您可以使用^{}来取消HTML实体的转景。在

您需要使用urllib2 python library从网站获取html,然后通过html解析来获取所需的文本。在

使用BeautifulSoup解析html

import BeautifulSoup
resp = urllib2.urlopen("http://stackoverflow.com")
rawhtml = resp.read()
#parse through html to get text
soup=BeautifulSoup(rawhtml)

相关问题 更多 >