阅读是汲取知识的途径之一,但烦杂的网页提了额外我们诸多不需要的信息,这有时候非常干扰我们阅读。回归阅读 内容的本身,其实通过 Readability 这个脚本 就能抽取页面的主体内容。
不过,Readability 提供的仅仅是个 Bookmarklet,如果我们需要将其导出、打印等操作时就显 得捉衿见肘。需求驱动行动, 于是就有了这个 PHP 库 。PS,同时您还可以找到 .net 版本的 Readability ,以及 node.js 版本的 Readability 。
这个库能做的事情非常的简单,就是找到页面的主体内容并返回。调用这个库非常的容易,实例代码如下:
require 'lib/Readability.inc.php';
$Readability = new Readability($html, $html_input_charset); // default charset is utf-8
$ReadabilityData = $Readability->getContent();
echo "<h1>".$ReadabilityData['title']."</h1>";
echo $ReadabilityData['content'];
如果您不在意技术本身, 那么这里有个现成的线上工具 。只需要粘贴入需要阅读的网页链接,这个工具就能够重新生成适合阅读的页面(例如: 原页面 、 Readability 以后的页面 )。
然后利用 Mac 的 pdf 打印输出功能,就能非常方便在 kindle 等阅读器上使用。
Q&A
输出的页面似乎有乱码?
PHP Readability 库能够指定输入的字符编码并统一返回 utf-8 编码的字符串。如果您在处理过程中碰到了乱码问题,请调整下字符编码。如果还是有问题,欢迎您的反馈。
有些页面提取内容失败或者提取不正确?
Readability 提取的算法其实非常有限。如果页面本身的 HTML 标签不是非常合乎规范,那么提取可能会造成一定的困扰。通常这在国内的页面上会更常见些,同样欢迎您的反馈,这有利于我继续改进 PHP Readability 的算法。
最后,希望这个库和工具能让你找回阅读的乐趣。
-- EOF --
直接屏幕阅读的话浅灰色背景大概比白色背景更适合长时间阅读?
源码的注释很详细,找时间研究下。// 曾以为提取页面内容是件很困难的事情,现在发现好像也不是。
存在的问题挺多的么。
好东西啊~ 相当于 Instapaper 的开源实现了。
貌似这个东西不怎么用啊
现在做PHP的人还是挺多的,ASP变少了
支持php,热爱前端
有木有Python版本的
我以前写过一个python版本,如果你想要,我过段时间在我博客贴代码吧。
示例:
http://xiaoxia.org:8848/?url=http://www.ifanr.com/34619
很想抽时间比较一下,看看这个readability的准确率多高!