正文从网站提取文本,例如仅提取文章标题和文本而不是网站中的所有文本

时间:2011-04-21 15:02:05

标签: algorithm text web-scraping text-extraction

我正在寻找允许从网站提取文本的算法。我不是指“strip html”,也不是指允许这样做的数百个库中的任何一个。

例如,对于一篇新闻文章,我想确定标题和所有文本,但不是评论部分等等。

那里有算法吗?谢谢!

5 个答案:

答案 0 :(得分:9)

在计算机科学文献中,这个问题通常被称为页面分割样板检测问题。查看报告Boilerplate Detection using Shallow Text Features及其相关的blog帖子。另外,我有一些报告和软件网站bookmarked可以解决这个问题。另请参阅this stackoverflow问题。

答案 1 :(得分:1)

您尝试做的事情称为“内容提取”。事实证明这是一个令人难以解决的难题,许多天真的解决方案都做得非常糟糕。

InstapaperReadability都必须解决这个问题,你可以从他们的解决方案中学到一些东西。他们也提供您可以利用的服务 - 也许您可以将问题外包给他们并让他们的API来处理它。 :)

如果做不到这一点,搜索“html content extraction”会返回大量有用的结果,包括有关此主题的大量论文。

答案 2 :(得分:1)

有一些开源工具可以执行类似的文章提取任务。 https://github.com/jiminoc/goose由Gravity.com开源

它包含wiki的信息以及您可以查看的来源。有许多单元测试显示从各种文章中提取的文本。

答案 3 :(得分:0)

"内容提取"是一个非常困难的话题。没有共同的标准来识别"主要文章"内容(有几种方法可以让抓取工具更容易阅读HTML,例如schema.org,但这些方法都不常用。)

事实证明,如果你想获得好的结果,最好为每个(新闻)网站定义你自己的XPath选择器。虽然有一些用于HTML内容提取的API,但正如我所说,很难开发出适用于每个站点的算法。

您可以使用的一些API:

alchemyapi.com
diffbot.com
boilerpipe-web.appspot.com
aylien.com
textracto.com

答案 4 :(得分:-2)

我认为你最好的拍摄是研究从元数据中获得哪些信息并编写一个好的HTML解析器,oEmbed可能是一个很好的标准=)

https://oembed.com/#section7