Pocket 中从网页中识别出正文的技术叫做什么?

2015-03-10 12:45:11 +08:00
 KyL

如果你用过 Pocket getpocket.com,那么当你添加一个网页后,点击进去,Pocket会为你生成一个包含正文的阅读界面。那么这个从各种网站杂乱的html中抽出正文的功能是如何实现的呢,有没有什么开源的第三方库呢?貌似Safari中的阅读列表也有类似的生成正文的功能。

5469 次点击
所在节点    程序员
17 条回复
ryanking8215
2015-03-10 12:49:39 +08:00
会不会把样式都去掉了,或者是自己的样式。
raptium
2015-03-10 12:56:33 +08:00
印象中最早实现这个功能的东西叫 readability
multiple1902
2015-03-10 12:57:08 +08:00
Shuyi Zheng, Ruihua Song, and Ji-Rong Wen. Template-Independent News Extraction Based on Visual Consistency. In the Proceedings of AAAI 2007, 2007
http://www.aaai.org/Papers/AAAI/2007/AAAI07-239.pdf
KyL
2015-03-10 12:57:39 +08:00
@ryanking8215 但是一个原始的网页中除了正文,还有其他的文本,包括导航,广告,一些说明文字,评论等等。仅仅去掉样式并不能解决这些多余的文本吧。
h4x3rotab
2015-03-10 13:00:50 +08:00
@multiple1902 正解,苹果的阅读器用的是神经网络实现的
max0ne
2015-03-10 13:03:42 +08:00
jinchun
2015-03-10 13:06:35 +08:00
网站DOM结构越接近标准越好折腾。。
iiduce
2015-03-10 13:06:53 +08:00
/t/10934 这里有干货
fourj
2015-03-10 14:48:59 +08:00
@ryanking8215 感觉会是去css & style,保留tag,增加自己的样式。

实现正文提取,比较困难的是找到正文,和去掉噪音内容,都需要不少策略~
推荐个开源项目: https://code.google.com/p/boilerpipe/
babyname
2015-03-10 14:51:29 +08:00
内容萃取
metrue
2015-03-10 14:53:39 +08:00
最近也开始这样做这样子的项目,目前使用的方法也只是去掉样式,留下tag方式,坐等更好的解决方案。
laoyuan
2015-03-10 16:02:52 +08:00
不行就弄个网页做黑盒
zj299792458
2015-03-10 16:20:51 +08:00
html的<p>不就是正文?
JoeShu
2015-03-10 17:07:12 +08:00
据我作爬虫的经验,提供几个思路
1. 基于网站的模板,对于某个具体的网站上的页面, 正文部分在页面上的位置一般都比较固定的,根据xpath可以很容易提取出来。缺点是需要和服务端通信,而且创建模板需要人工的干预。
2. 一般阅读的正文都有一定的特征,比如含有标题,正文一般是整个页面最长的,包含很多特征标签(如<p>等), js代码很少等等,根据这些特征可以计算出页面上正文部分的位置。好处是可以离线处理,缺点是识别率可能稍低。

实际应用很可能是多种方式的叠加。
alsotang
2015-03-10 18:34:36 +08:00
@zj299792458 印象中 div 里面才是
KyL
2015-03-11 21:17:45 +08:00
sundyli
2017-07-24 15:22:34 +08:00
html2article 算法, 可以基于文本密度实现, 我撸了一个 https://github.com/sundy-li/html2article

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/175776

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX