在写爬虫进行舆情分析、情感分析等内容时,我们经常爬取博客、新闻等长篇大论的文章,在一个网页上,根据网页布局,人眼可以很明确的确定哪些元素是文章主体。人眼既然能够识别,那么机器必然也是能够识别的。如果给定一片HTML文档,机器学习返回文章主体所在的元素,那样在写爬虫时就可以避免F12打开控制台查看元素名称了。

从网页中提取出主要内容,一直是一个比较有挑战的算法。Readability是其中一个很不错的实现。Readability之前是开源的,后来不再公开了。
Readability通过遍历Dom对象,通过标签和常用文字的加减权,来重新整合出页面的内容。
Readability也是一款chrome插件,可以提取网页正文发送到手机,这样就可以空闲时在移动端详细阅读正文。

python:https://github.com/timbertson/python-readability
java:https://github.com/chimbori/crux
nodejs版本:https://github.com/luin/readability
php 版本:https://github.com/feelinglucky/php-readability
JS版本:https://github.com/mozilla/readability
Swift版本:https://github.com/exyte/ReadabilityKit
Ruby版本:https://github.com/cantino/ruby-readability

参考资料

https://www.biaodianfu.com/about

Redability的更多相关文章

  1. SQL Fundamentals: Basic SELECT statement基本的select语句(控制操作的现实列)(FROM-SELECT)

    SQL Fundamentals || Oracle SQL语言 Capabilities of the SELECT Statement(SELECT语句的功能) Data retrieval fr ...

随机推荐

  1. js遍历jstl数组

    查询到在js中可以使用jstl <script> <c:forEach items="${channel.templates}" var="templa ...

  2. Android模仿三星手机系统滑动条滑动时滑块变大的特效

    使用三星手机的过程中发现三星手机系统自带的滑动条有一个特效.比方调节亮度的滑动条.在滑动滑块的过程中,滑块会变大.功能非常小可是体验却非常好,于是决定做一个这种效果出来.好了废话不多说了,以下開始实现 ...

  3. 【GRPC】GRPC-负载均衡

    GRPC-负载均衡 grpc nginx_百度搜索 grpc(1):Centos 安装java的grpc服务,使用haproxy进行负载均衡,nginx不支持 - freewebsys的专栏 - CS ...

  4. Twitter Lite以及大规模的高性能React渐进式网络应用

    Twitter Lite以及大规模的高性能React渐进式网络应用 原文:Twitter Lite and High Performance React Progressive Web Apps at ...

  5. [Javascript] Avoiding Mutations in JavaScript with Immutable Data Structures

    To demonstrate the difference between mutability and immutability, imagine taking a drink from a gla ...

  6. 【nodejs】理想论坛帖子下载爬虫1.07 使用request模块后稳定多了

    在1.06版本时,访问网页采用的时http.request,但调用次数多以后就问题来了. 寻找别的方案时看到了https://cnodejs.org/topic/53142ef833dbcb076d0 ...

  7. Android Handler 消息处理使用

    本文内容 环境 演示 Handler 消息处理 参考资料 Handler 有两个主要作用或者说是步骤:发送消息和处理消息.在新启动的线程中发送消息,在主线程中获取.并处理消息.Android 平台只允 ...

  8. KindEditor-编辑器配置参数属性

    KindEditor-源码分析 通过使用KE.show(config)方法即可将编辑器添加到文档中.下面是一段源码: KE.show = function(args) {     KE.init(ar ...

  9. HTML DOM 基础知识,成为javascript晋级高手的必备手册

    一.DOM 简介,什么是 DOM? 文件对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展置标语言的标准编程接口. 标记语言,也称置标语言,是一种将文本( ...

  10. python 大小端数据转换

    "6fe28c0ab6f1b372c1a6a246ae63f74f931e8365e15a089c68d6190000000000".decode('hex')[::-1].enc ...