V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
KyL
V2EX  ›  程序员

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

  •  1
     
  •   KyL · 2015-03-10 12:45:11 +08:00 · 5502 次点击
    这是一个创建于 3555 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    17 条回复    2017-07-24 15:22:34 +08:00
    ryanking8215
        1
    ryanking8215  
       2015-03-10 12:49:39 +08:00
    会不会把样式都去掉了,或者是自己的样式。
    raptium
        2
    raptium  
       2015-03-10 12:56:33 +08:00
    印象中最早实现这个功能的东西叫 readability
    multiple1902
        3
    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
        4
    KyL  
    OP
       2015-03-10 12:57:39 +08:00
    @ryanking8215 但是一个原始的网页中除了正文,还有其他的文本,包括导航,广告,一些说明文字,评论等等。仅仅去掉样式并不能解决这些多余的文本吧。
    h4x3rotab
        5
    h4x3rotab  
       2015-03-10 13:00:50 +08:00
    @multiple1902 正解,苹果的阅读器用的是神经网络实现的
    jinchun
        7
    jinchun  
       2015-03-10 13:06:35 +08:00
    网站DOM结构越接近标准越好折腾。。
    iiduce
        8
    iiduce  
       2015-03-10 13:06:53 +08:00
    /t/10934 这里有干货
    fourj
        9
    fourj  
       2015-03-10 14:48:59 +08:00
    @ryanking8215 感觉会是去css & style,保留tag,增加自己的样式。

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

    实际应用很可能是多种方式的叠加。
    alsotang
        15
    alsotang  
       2015-03-10 18:34:36 +08:00
    @zj299792458 印象中 div 里面才是
    KyL
        16
    KyL  
    OP
       2015-03-11 21:17:45 +08:00
    sundyli
        17
    sundyli  
       2017-07-24 15:22:34 +08:00
    html2article 算法, 可以基于文本密度实现, 我撸了一个 https://github.com/sundy-li/html2article
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5820 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 06:04 · PVG 14:04 · LAX 22:04 · JFK 01:04
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.