网页正文提取工具:Readability

从网页中提取出主要内容,一直是一个比较有挑战的算法。Readability是其中一个很不错的实现。Readability之前是开源的,后来不再公开了,这里还有当初的开源版本可以参考:arc90labs-readability – Readability cleans up hard-to-read articles on the Web

Readability通过遍历Dom对象,通过标签和常用文字的加减权,来重新整合出页面的内容。接下来我们就简单看看这个算法是如何实现的。首先,它定义了一系列正则:

可以看到,标签和文字都有加权或降权分组。整个内容分析是通过grabArticle函数来实现的。首先开始遍历节点:

然后将不像内容的元素去掉:

将DIV替换为P标签后,再对目标节点进行遍历,进行计分:

最后根据分值,重新拼接内容

可以看到,里边用到了很多很trick的技巧,比如25字以下的段落不计分。目前已经有很多其他语言的版本,但是考虑到原始功能是针对的英文页面进行设计的。在移植过程中需要考虑:

  • 支持GBK, GB2312等编码
  • 支持更多的视频网站,比如优酷、土豆等
  • 支持提取文章标题
  • 支持图片相对路径转成绝对路径

目前收集到的比较好的移植版本为:

微信支付标点符 wechat qrcode
支付宝标点符 alipay qrcode

WordPress LaTeX插件更换记录

由于自己的博客要插入很多的公式,所以需要依赖LaTeX插件来帮忙实现。先前一直使用的是WP QuickLaTe

Docker容器内多用户版JupyterHub支持GPU

前一篇文章介绍了Docker下安装多用户版的JupyterHub,但安装完毕后会遇到一个问题:Docker内无

使用Docker安装多用户版的JupyterHub

宿主服务器使用的是Ubuntu 18.04,需要注意的是Docker目前不支持Ubuntu 19.10。如要在

发表评论

电子邮件地址不会被公开。 必填项已用*标注