有人分析过吗?做得很强,基本没有错过。
回答维基:
* boilerpipe(2012~now): http://stackoverflow.com/a/10323254/2245019
* readability(2010~now): https://github.com/kingwkb/readability
* cx-extractor(2010~2013): https://code.google.com/p/cx-extractor/
这是本文回复提到的主要几个。如有需要我再完善。
1
rokeyzki 2015-12-08 14:38:31 +08:00
相比之下,为知的网页剪藏就做的不好
|
2
Livid MOD 讲一个基本的算法思路:遍历所有的 DOM 节点(忽略部分,比如 p 和 span ,主要关注 div 和 td ),找出其中正文信息量最大的一个。
|
3
iiduce 2015-12-08 14:55:05 +08:00
|
4
rokeyzki 2015-12-08 14:56:29 +08:00
|
5
icedx 2015-12-08 15:08:07 +08:00
|
6
napsterwu 2015-12-08 15:09:09 +08:00
《数学之美》
|
7
polythene 2015-12-08 15:18:48 +08:00
我用打分的方式实现了一个 python 的版本 https://github.com/polyrabbit/hacker-news-digest/tree/master/page_content_extractor 目前看来提取正文的准确率还不错
|
8
alexapollo OP |
9
Livid MOD @alexapollo 具体是如何做到的我也不清楚细节。但是正文的出现位置是有规律可循的,比如从顺序来说,出现在 h1 之后信息量最大的一个 div 是正文的可能性较高。
|
10
alexapollo OP |
11
fractal314 2015-12-08 17:13:53 +08:00 via Android
我也在想这个问题,好像有种算法是计算文本密度,不过我觉得计算链接数量,统计正文对应的标签应该也有效果
|
12
knightdf 2015-12-08 17:37:57 +08:00
python 有个 dragnet
|
13
KyleMeow 2015-12-08 17:50:03 +08:00
|
14
Biwood 2015-12-08 17:54:16 +08:00
应该是根据文本量来计算的,比如现在这个页面,我点了一下剪藏,结果选中了右下角的 100offer 的广告,目测当前页面上就是这个广告元素的文本内容最丰富
|
15
alexapollo OP @Biwood 我的 adblock 默认把广告过滤了,应该有这个不同
|
16
rokeyzki 2015-12-08 17:56:06 +08:00
|
17
ytf 2015-12-08 19:19:37 +08:00
|
18
dongoo 2015-12-08 21:28:40 +08:00
试了一下印象笔记的剪藏功能,网页正文居然是右边的广告。。。
https://ooo.0o0.ooo/2015/12/08/5666dad9e2208.png |