我正在做一个需要从网页中提取数据的学校项目。准确地说,我需要一个库或开源程序从html/文本数据中提取人类可读的内容。类似于web浏览器呈现的文本内容。
我知道用正则表达式解析html是从中提取文本的最差方法。
额外信息:我需要它来计算文本文档之间的相似度。
任何帮助都会很感激。由于
我强烈推荐这个问题的第一个答案,以避免您使用正则表达式解析HTML。这个答案比我更能说明为什么你不应该这么做,所以我遵从这个答案。
您还会发现您应该研究XML解析器,而不是尝试通过正则表达式"手工解析"(您将在参考问题及其答案中阅读)。
如果您只关心文本的相似性,那么您可以编写一个正则表达式来去掉表单</?(every|single|valid|tag)[^>]*>
的所有HTML标记(也许首先要删除所有<script>.*</script>
标记),然后将所有内容混在一个很长的段落中。这不会是一个坏的使用正则表达式;这就是他们存在的意义。
我可能会推荐http://docs.python.org/library/xml.dom.minidom.html,但我认为它的界面可能非常笨拙。此外,您不需要访问层次结构,只需访问文本即可。否则,解析器将比正则表达式更好(否则这将是一个糟糕的主意)。