使用API智能提取网页上的文章正文:url2io

1
Want create site? Find Free WordPress Themes and plugins.

对于互联网上纷繁错杂的信息,“取其精华,去其糟粕”已成为我们处理信息的准则。同样的道理,单是一个网页,其元素也错综复杂。对于网页上的文章,倘若需要抓取而递交程序或脚本处理,大多数情况下——比如编写一个抓取任意博客文章制成电子书的程序——我们只需要它的正文部分。但从层层叠叠的HTML骨架中提取出最核心的部分,岂乃易事?

网页中的元素错综复杂,根本没法空手取正文

自然,人们早就有这个需求了。众多前辈们也曾八仙过海,用各种方式解决这个问题。比如一位博主是这么写的:

现在有这么几种思路:

  • 基于标签用途的正文提取算法(比如title或h1,h2标签一般用作标题,p一般表示正文段落,根据标签的含义去提取正文)
  • 基于标签密度判定(这个简单,说白了就是字符统计,正文部分html标签的密度比较低,确定一个阈值,按照标签密度提取正文部分)
  • 基于数据挖掘思想的网页正文抽取方法(这里会涉及到统计学和概率论的一些知识,在高深点就成了机器学习了,没有深入研究)
  • 基于视觉网页块分析技术的正文抽取(CV这种高端大气上档次的东西,岂是我等这么容易就能研究明白的。虽然实现上复杂,但就提取效果而言,这种方法提取的精度还是不错的)

前2中方法还是比较容易实现的,主要是处理简单,先前我把标签密度的提取算法实现了,但实际用起来错误率还是蛮高的;后2种方法在实现上就略复杂了,从算法效率上讲应该也高不了哪去。

我们需要的是一种简单易实现的,既能保证处理速度,提取的准确率也不错的算法。于是结合前两种算法,研究网页html页面结构,有了一种比较好的处理思路,权且叫做基于文本密度的正文提取算法吧。后来从网上找了一下类似的算法,发现也有使用类似的处理方法来处理正文提取的,不过还是有些不同。

原文:https://www.cnblogs.com/jasondan/p/3497757.html ,感兴趣的朋友可以去学习一个

 

但作为普通开发者的我们,有没有什么办法能够在最短的时间内,较方便、较精确地实现这个需求呢?好在url2io这个api为我们提供了这项服务:

url2io地址:http://www.url2io.com/

url2io的产品还在测试阶段,而目前是免费开放给所有注册用户使用的。在产品介绍页面,你可以看到一个体验demo。我在其中输入淀粉月刊的置顶文章:

点击GO,数秒后,这篇文章的标题和正文便被准确地展现在了我眼前:

如果你在程序中调用API,返回的是如上的json格式。其保留了用于使正文正常显示的基本的HTML代码(包括图片),并给出了标题、正文、网址、时间等数据。在经过简单渲染后,呈现在最终用户眼前的应该是这样的:

多次测试后,居正发现自己尝试的每一个网站,url2io都能从中正确地提取出标题、正文等信息——一段话不少,一个标签不多。实在是令人惊叹。


url2io为开发者提供了详细的文档,而且还有热心开发者为这个项目开发了SDK。截止目前已经有python, nodejs, golang, php, java这五门语言的SDK开发包,均可在github下载到。url2io文档地址:http://www.url2io.com/docs

要注意的是,调用url2io的api时需要使用你自己的开发者token验证——你得注册一个账户来获取属于自己的token。根据文档的细节,一个token每天调用api的次数应该是有限制的,但具体数值不详。

悄悄透露一下,我正在用这个api开发一个能自动抓取网页正文并推送到kindle的小工具,到时候可能会开源哦~


OK,那么和居正有类似开发需求的朋友尽可以尝试这个api。其实吧,腾讯的文智语义分析也提供了类似的服务,不过价格不菲,也不知道用起来和url2io相比又能有什么高明之处。但,url2io是免费的,所以尽情享用吧~

Did you find apk for android? You can find new Free Android Games and apps.

关于作者

居正

大道至简

一条评论

发表评论