有人分析过吗?做得很强,基本没有错过。
回答维基:
* 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 PRO ![]() 讲一个基本的算法思路:遍历所有的 DOM 节点(忽略部分,比如 p 和 span ,主要关注 div 和 td ),找出其中正文信息量最大的一个。 |
![]() | 4 rokeyzki 2015-12-08 14:56:29 +08:00 |
![]() | 5 icedx 2015-12-08 15:08:07 +08:00 |
![]() | 6 orcusfox 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 PRO @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 |