首发于 ColorGamer
浅谈网页阅读模式的内容提取

浅谈网页阅读模式的内容提取

因为利益和技术的不同,互联网上充斥着大量的带极具不友好的网页内容,对于一个阅读内容的人来说,很多东西都是不需要的,如:页头,菜单,导航,甚至是评论,还有那万恶的广告。加上布局,字体,字体大小/颜色,背景颜色等,诸多因素都会让你的阅读体验大打折扣。所以,一个良好的阅读模式就非常的有必要了。那么,如何提取,或者说识别不同网页里的内容主体呢?这就是本文想要浅谈的内容。

1. Safari Reader

Safari很早(多早就不知道了)就有了阅读模式,为移动端提供阅读支持。Github上有它的处理JS代码(听说是从Safari里取出来的),2010年的代码。

1.1 简单原理

Safari Reader会根据页面高宽在页面上计算出9个点,如下图:


之后根据点的坐标,使用document.elementFromPoint()来获取dom对象,然后往上遍历父节点,根据节点类型及样式值给节点打分(有一个计分方式),寻找样式相同且数量最多的节点,认为其就是内容主体。

其实这样的判断方式是没啥问题的,但仍然有相当一部分的页面内容是无法识别的,为什么无法识别这个就不太好讲。虽然代码提供有Source版本,但其实只是将压缩后的代码格式化了一下,一些核心的代码仍然很难看明白。

2. Fika

Fika是一款提供阅读模式的Chrome Extension,它开始也就是使用Safari Reader JS,但发现识别率太低后,换成了自己的实现。

2.1 简单原理

Fika认为,内容主体多数会聚焦大量的H,p,pre,code,figure等Element,所以以此为基准,获取网页dom里的所有对应Element,然后往上遍历父节点。但它只会往上找2-3层,并给这2-3层打分,离得越远,分数越低,如果属性里包含content/article等字样的额外加分。分数最高的,它认为是内容主体。这样子确实可以找到更多的内容主体,而且在目前更加规范的页面结构下,准确率相当不错。

2.2 问题

如上所说,目前Fika只会根据指定的Element去获取内容,所以,如果哪个网页的内容主体全是DIV元素,那它就失效了。而且,虽然找到了主体,但主体内部的元素仍然有不少是无用的,比如:分享,广告,表单等。虽然Fika做了一些排除,但在这一部分仍然会有很大的机率失效,虽然影响没有Safari Reader JS这样的找不到大,但总是不够完美。

2.3 改良

首先,去掉指定元素,遍历dom树时,判断标准改为元素内的#text,img,h,pre,code,figure等,如果找到就给父节点打分,那么聚焦内容越多的地方,自然就是内容主体部分。那如何去掉问题里的元素呢?

这样子处理后,相比之前肯定会有一个大的提升。但想要完美,并不现实。Fika想做的是,你任一打开一个网站,点开Fika,就可以得到一个相对理想的阅读体验。

结尾

在千页千面的互联网上,对于内容主体的判断还是过于理想,如果所有网站都按HTML定义的标准构建页面,那效果会很好,但标准总不会有人执行,而且还有很多网页在没有标准的时候就已经在网上了,所以,最终对内容属性的修正也是一个必要的过程,但100%估计是永远无法达到的上限。


Fika -Reader Mode

代做工资流水公司吉林办理在职证明鞍山入职银行流水代办上海公司银行流水代做漳州代做背调工资流水镇江贷款工资流水 公司中山工资流水单模板南昌打工作收入证明西安开工资流水单大连签证流水代做海口开公司银行流水宜昌对公流水费用莆田对公账户流水代开西宁签证银行流水 代办长沙转账流水代做邯郸公司银行流水多少钱深圳贷款流水样本厦门代办流水哈尔滨企业银行流水费用南京代做背调银行流水长春办理企业对公流水德阳制作车贷流水沧州代做银行流水无锡工资银行流水样本威海办公司流水常德办企业流水打印开封开流水天津离职证明代办宁波流水账单图片深圳企业对私流水代开三亚银行流水单代做香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

代做工资流水公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化