V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
alexapollo
V2EX  ›  程序员

Q:印象笔记剪藏的只保持网页正文的功能是怎么实现的?

  •  3
     
  •   alexapollo ·
    geekan · Dec 8, 2015 · 6352 views
    This topic created in 3799 days ago, the information mentioned may be changed or developed.

    有人分析过吗?做得很强,基本没有错过。

    Supplement 1  ·  Dec 9, 2015

    回答维基:
    * 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/

    这是本文回复提到的主要几个。如有需要我再完善。

    21 replies    2018-02-05 13:22:06 +08:00
    rokeyzki
        1
    rokeyzki  
       Dec 8, 2015
    相比之下,为知的网页剪藏就做的不好
    Livid
        2
    Livid  
    MOD
    PRO
       Dec 8, 2015   ❤️ 2
    讲一个基本的算法思路:遍历所有的 DOM 节点(忽略部分,比如 p 和 span ,主要关注 div 和 td ),找出其中正文信息量最大的一个。
    iiduce
        3
    iiduce  
       Dec 8, 2015
    rokeyzki
        4
    rokeyzki  
       Dec 8, 2015
    icedx
        5
    icedx  
       Dec 8, 2015
    orcusfox
        6
    orcusfox  
       Dec 8, 2015
    《数学之美》
    polythene
        7
    polythene  
       Dec 8, 2015
    我用打分的方式实现了一个 python 的版本 https://github.com/polyrabbit/hacker-news-digest/tree/master/page_content_extractor 目前看来提取正文的准确率还不错
    alexapollo
        8
    alexapollo  
    OP
       Dec 8, 2015
    @Livid
    1. 广告很多时候信息量也很大,使用 adblock 来排除吗?
    2. 像这篇帖子,它可以准确抽出帖子主体,但评论实际占了大头,这种情况怎么判断“正文信息量”?
    Livid
        9
    Livid  
    MOD
    PRO
       Dec 8, 2015
    @alexapollo 具体是如何做到的我也不清楚细节。但是正文的出现位置是有规律可循的,比如从顺序来说,出现在 h1 之后信息量最大的一个 div 是正文的可能性较高。
    alexapollo
        10
    alexapollo  
    OP
       Dec 8, 2015
    @rokeyzki 很有用,有 python 的版本吗
    @icedx 是你写的?
    @polythene 很有趣,晚上我看看,刚好我也在做 PDF 抽取
    @napsterwu 有看过,没说到这个吧
    fractal314
        11
    fractal314  
       Dec 8, 2015 via Android
    我也在想这个问题,好像有种算法是计算文本密度,不过我觉得计算链接数量,统计正文对应的标签应该也有效果
    knightdf
        12
    knightdf  
       Dec 8, 2015
    python 有个 dragnet
    Biwood
        14
    Biwood  
       Dec 8, 2015
    应该是根据文本量来计算的,比如现在这个页面,我点了一下剪藏,结果选中了右下角的 100offer 的广告,目测当前页面上就是这个广告元素的文本内容最丰富
    alexapollo
        15
    alexapollo  
    OP
       Dec 8, 2015
    @Biwood 我的 adblock 默认把广告过滤了,应该有这个不同
    ytf
        17
    ytf  
       Dec 8, 2015
    dongoo
        18
    dongoo  
       Dec 8, 2015
    试了一下印象笔记的剪藏功能,网页正文居然是右边的广告。。。

    https://ooo.0o0.ooo/2015/12/08/5666dad9e2208.png
    SmiteChow
        19
    SmiteChow  
       Dec 9, 2015
    @dongoo 😄
    yh7gdiaYW
        20
    yh7gdiaYW  
       Dec 9, 2015
    @dongoo
    我的倒是正确提取了主题,该更新了?
    jayli517
        21
    jayli517  
       Feb 5, 2018
    @dongoo 大部分的时候印象笔记都是正常的,实在不正常的时候就只能尝试选择或者复制粘贴了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2378 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 59ms · UTC 05:54 · PVG 13:54 · LAX 22:54 · JFK 01:54
    ♥ Do have faith in what you're doing.