类似Instapaper的算法

Joe*_*oey 34 html

是否有任何算法从网页中提取内容?喜欢instapaper

Joe*_*oel 49

Instapaper的作用有两个步骤:

  1. 在页面上查找主要内容块(不包括页眉,页脚,菜单等)
  2. 从此内容块中提取格式化文本

要查找内容块(通常是一些html块元素,如包含关键页面文本内容的div),Instapaper使用的算法与可读性使用的算法非常相似.您可以查看readability.js的来源以查看发生了什么,但其核心是尝试在页面上找到具有最高文本/链接比率的区域,尽管它也有其他一些简单的评分指标(例如,关闭我的头脑,比如文本与逗号的比例,para元素等,进入启发式.

一旦你确定了根节点元素和相关内容,你就需要对其进行格式化,如果你想要你可以从源文档中拉出包含文本的节点元素并将其插入你的文件中,但实际上你为了标准的外观和风格,我们可能希望删除现有的样式并应用您自己的样式.如果你想输出纯文本,你可以使用Jericho的渲染器.

更新1:我还应该提一下Instapaper做的其他事情 - 这是跟随文章的'分页'链接("下一个"或"1","2","3"链接)到他们的结论,这样一块可能跨越原始页面中的许多页面将作为单个文档呈现给您.

update2我最近遇到了文本提取算法的比较


Jam*_*mes 6

有一个开源应用程序可以从任何网页中解析文章的文本

https://github.com/jiminoc/goose/wiki

应该做的伎俩