1
ericFork 2013-04-26 21:06:34 +08:00 3
|
2
lookhi 2013-04-26 21:13:32 +08:00
一个字 猜的
|
5
binux 2013-04-26 21:22:44 +08:00
查找最多p的div
|
7
jeeson 2013-04-26 21:51:50 +08:00 4
大部分网页正文提取算法都是根据开源的 Readability 算法修改的,主要是计算文本密度,以及 link 密度,评估最可能的节点,然后在扣除 评论之类的内容。算法依赖经验参数,不容易改进。这种算法确实如 lookhi 说的,“猜”测的。
后来 Readability 改为闭源,算法在后台运行,应该有一些网页是根据数据来改进。 Chrome 插件 Send to Kindle (by Klip.me) 的正文提取算法是另一种方法,模仿人眼的对焦过程,先在页面的可视区域找到 “种子”,然后在扩大/收缩。并且能够根据用户的高亮选择自动训练出对焦数据。但是这种方法需要网页加载渲染完毕,适合作为插件,不适合在 Server 端运行。相对来说,对焦算法算是 “推”测的 还有一种方法,通过“同构分析”反推出网页的“生成”结构,diffbot 可能用的是这种方法。这种方法我之前做过试验,能获得结果的情况下准确度高。不过当时算法没做完,许多网站没有反推出结构。 |
8
lookhi 2013-04-26 22:13:51 +08:00 1
楼上很全了
渲染的 统称为基于视觉的 反推结构的,基于一个假设前提,网站的页面都是基于模版出来了。 机器在分析某个页面的时候,会去自动的找若干个看上去类似的页面,进行页面比对。 删除类似的雷同部分,比如导航页眉页脚的,形成一个页面的框架。 再去猜。 More http://www.zhizhihu.com/html/y2013/4202.html |
9
aisin OP |
10
jeeson 2013-04-26 23:20:48 +08:00 2
@aisin 每种算法具体到不同网页表现不同,不好用个别网站的网页来推断一个算法的好坏
Readability 不是简单取页面的 head->title,而是首先设法从正文中获得标题,然后再在正文中的扣除标题,避免重复。这样的好处是可以获得更准确的标题,比如 许多网站在 head->title 中加了许多网站信息。不过按理说,最坏情况下,至少可以用 head->title,不至于提取不到标题 这些算法在提取不到的时候,会用整个网页的内容然后根据一些规则做一下过滤,获得的结果也勉强可以接受 Readability 新版改为后台处理,有可能后台无法抓取到你的网页,所以导致抓取失败。我对他的新版本不了解 以前比较过几个算法,总的来说 Readability 相对 Instapaper 和 Pocket 还是要更好一些,后来 Pocket 扩大规模了,可能有人手专门对提取算法做了改进了 |
12
standin000 2013-12-23 12:34:09 +08:00
感觉这个基于readability.com的开源产品的项目 https://github.com/luin/node-readability 比较靠谱
|