有人知道从网页中提取内容的算法吗?像instapaper一样
发布于 2010-11-26 16:09:59
Instapaper的功能有两个步骤:
为了找到内容块(通常是一些html块元素,比如包含关键页面文本内容的div ),Instapaper使用的算法与readability使用的算法非常相似。你可以看看source of readability.js,看看是怎么回事,但它的核心是试图找到页面上文本/链接比率最高的区域,尽管它还有其他一些简单的评分指标(例如,在我的头顶上,文本与逗号的比率,段落元素等)进入启发式。
一旦您确定了带有相关内容的根节点元素,您将需要格式化它,如果需要,您可以将包含文本的节点元素从源文档中拉出并将其插入到您的文档中,但实际上您可能希望删除现有样式并应用您自己的样式,以获得标准的外观。如果您希望输出为纯文本,则可以使用Jericho的Renderer。
update1:我还应该提到Instapaper做的其他事情--那就是遵循文章的“分页”链接(“下一页”或"1“、"2”、"3“链接)直到文章的结论,这样一篇可能跨越多页原文的文章将作为一个单独的文档呈现给您。
update2我最近遇到了这个
发布于 2010-12-21 07:10:19
发布于 2012-02-04 19:16:08
boilerpipe是开源java。该算法发表在一篇科学论文中,因此您可以阅读它与其他算法相比有多好。阅读它似乎是最好的选择之一。
https://stackoverflow.com/questions/4283418
复制相似问题