我想用Python从HTML文件中提取文本。我想要的输出基本上与从浏览器复制文本并将其粘贴到记事本中得到的输出相同。
我想要一些比使用正则表达式更健壮的东西,因为正则表达式在格式不佳的HTML上可能会失败。我看到很多人推荐Beautiful Soup,但我在使用它时遇到了一些问题。首先,它会拾取不需要的文本,比如JavaScript源。而且,它不能解释HTML实体。例如,我希望‘in HTML source’转换为文本中的撇号,就像我将浏览器内容粘贴到记事本中一样。
更新
看起来很有希望。它正确地处理HTML实体并忽略JavaScript。但是,它并不能准确地生成纯文本;它会生成必须转换为纯文本的markdown。它没有提供示例或文档,但代码看起来很干净。
相关问题:
过滤掉HTML标签并解析python中的实体
在Python中将XML/HTML实体转换为Unicode字符串
发布于 2018-04-06 11:14:41
对我来说最有效的方法是inscripts。
https://github.com/weblyzard/inscriptis
import urllib.request
from inscriptis import get_text
url = "http://www.informationscience.ch"
html = urllib.request.urlopen(url).read().decode('utf-8')
text = get_text(html)
print(text)
结果真的很好
https://stackoverflow.com/questions/328356
复制相似问题