提取网页正文的开源库的比较

前段时间在工作中,需要提取出网页的正文,就试验了一下机中提取网页正文开源库。

试验中主要试验了java和python两种提取正文的开源库,测试的连接是:http://www.chinanews.com/gj/2014/11-19/6791729.shtml。结果如下:

A.Java:

1.Cx-extractor( http://cx-extractor.googlecode.com):基于行块的分布来提取网页中的正文。

提取的方法是首先使用Jsoup来获取网页的内容,之后将内容传给cx-extractor,交由其来解析,核心代码如下所示:

1 // 通过Jsoup来获取html,在此设置了范文数据包的头部,因为有些网站会屏蔽爬虫。
2 String content = Jsoup.connect("http://www.chinanews.com/gj/2014/11-19/6791729.shtml").userAgent("Mozilla/5.0 (jsoup)").get().html();
3 // html_article即为解析出的正文。
4 String html_article = CXTextExtract.parse(content);

结果:这个库有时候会有错误,会将不属于正文的内容提取出来,例如一些无关的底部内容,或者一些链接。但性能比较高,约几十毫秒。

2.Boilerpipe(http://code.google.com/p/boilerpipe/):

基于网页dom树来解析,内部有多种解析器,比较准确,但是时间在100毫秒左右。

核心代码如下所示:

1 String content = Jsoup.connect("http://www.chinanews.com/gj/2014/11-19/6791729.shtml").userAgent("Mozilla/5.0 (jsoup)").get().html();
2 // 使用Bolierpipe来获取网页正文内容
3 String parse_article = ArticleExtractor.INSTANCE.getText(content);

结果:结果比较准确,性能比稍慢,大约在100毫米左右。

B.python:

1. Newspaper: 这个库可以实现由网上下载到解析,一条龙服务:

核心示例代码如下所示:

1 from newspaper import Article
2 a = Article(‘http://www.chinanews.com/gj/2014/11-19/6791729.shtml, language=‘zh‘)
3 a.download()
4 a.parse()

结果:耗时会比较长,第一次执行耗时4s左右,解析效果也一般。

2.Python-Goose

代码比较方便,但是,‘‘http://www.chinanews.com/gj/2014/11-19/6791729.shtml,此网址没有解析出来。

示例代码如下所示:

1 from goose import Goose
2 from goose.text import StopWordsChinese
3 url = ‘http://www.chinanews.com/gj/2014/11-19/6791729.shtml‘
4 g = Goose({‘stipwords_class‘:StopWordsChinese})
5 article = g.extract(url = url)
6 print article.cleaned_text[:150]

结果:效果不好,解析不出来。

3.Python-readability

示例代码如下所示:

1 from readability.readability import Document
2 import urllib
3 html = urllib.urlopen(‘http://www.chinanews.com/gj/2014/11-19/6791729.shtml‘).read()
4 readable_article = Document(html).summary()
5 readable_title = Document(html).short_title()

结果:能过滤出部分正文,但是正文包含很多标签。效果不很好。

最终结合上面结果和项目,选择了“Boilerpipe”,但是仍有部分网页是提取不出来正文的,还需要努力,同时,有些网页不堪忍睹。

时间: 2024-10-15 04:54:55

提取网页正文的开源库的比较的相关文章

Python readability提取网页正文的优化

Python readability的使用: from readability.readability import Document import urllib html = urllib.urlopen(url).read() readable_article = Document(html).summary() readable_title = Document(html).short_title() 最后抽取出来的readable_article是带HTML标签的文本.然而在好多情况下经

常见的提取网页正文的方法

Python readability的使用: from readability.readability import Document import urllib html = urllib.urlopen(url).read() readable_article = Document(html).summary() readable_title = Document(html).short_title() 最后抽取出来的readable_article是带HTML标签的文本.还需要进行clea

android UI开源库

. ActionBarSherlock ActionBarSherlock是一个独立的Android设计库,可以让Android 2.x的系统也能使用ActionBar.此 外,ActionBarSherlock还能够允许开发者只通过一个API,就可以方便地使用和设计ActionBar. ActionBarSherlock还可以自主判断选择并调用原生Action Bar还是扩展ActionBar.如果在Android 3.x以上使 用ActionBarSherlock,它还会调用系统原生的Act

Python Show-Me-the-Code 第 0008 题 提取HTML正文内容

第 0008 题:一个HTML文件,找出里面的正文. 思路:我把这里的正文理解为网页中我主要内容,那么怎么去抓取这个主要内容呢?我一开始的想法是用beautifulsoup来解析网页,但是又想到如果要抽取正文的话这样做还涉及到比较复杂的算法,而且对于不同的网页来说效果可能做不到很好.后来我发现了Python-goose(Github)这个神器,它是基于NLTK和Beautiful Soup的,分别是文本处理和HTML解析的领导者,目标是给定任意资讯文章或者任意文章类的网页,不仅提取出文章的主体,

网页正文抽取(包含提取图片)

转自:http://bbs.it-home.org/thread-12676-1-1.html /** *@author Xin Chen *Created on 2009-11-11 *Updated on 2010-08-09 *Email: [email protected] *Blog: http://hi.baidu.com/爱心同盟_陈鑫 *Modified By : Yang @ http://www.chainlt.com */ import java.util.ArrayLis

【转载】C# 开源库大全非常好

原文地址:http://m.blog.csdn.net/woddle/article/details/37311877 C#开源大全 商业协作和项目管理平台-TeamLab 网络视频会议软件-VMukti 驰骋工作流程引擎-ccflow [免费]正则表达式测试工具-Regex-Tester Windows-Phone-7-SDK Excel-读写组件-ExcelLibrary .NET集成开发环境-MonoDevelop 电话软交换机-FreeSWITCH 开源操作系统-Cosmos 坦克机器人

【开源框架】Android之史上最全最简单最有用的第三方开源库收集整理,有助于快速开发,欢迎各位...

[转]http://www.tuicool.com/articles/jyA3MrU Android开源库 自己一直很喜欢Android开发,就如博客签名一样, 我是程序猿,我为自己代言 . 在摸索过程中,GitHub上搜集了很多很棒的Android第三方库,推荐给在苦苦寻找的开发者,而且我会 不定期的更新 这篇文章. Android下的优秀开发库数不胜数,在本文中,我列举的多是开发流程中最常用的一些.如果你还想了解更多的Android开源库,可以关注我的博客,每一个库都是我认真查看或者编译运行

Android之史上最全最简单最有用的第三方开源库收集整理

Android开源库 自己一直很喜欢Android开发,就如博客签名一样, 我是程序猿,我为自己代言 . 在摸索过程中,GitHub上搜集了很多很棒的Android第三方库,推荐给在苦苦寻找的开发者,而且我会 不定期的更新 这篇文章. Android下的优秀开发库数不胜数,在本文中,我列举的多是开发流程中最常用的一些.如果你还想了解更多的Android开源库,可以关注我的博客,每一个库都是我认真查看或者编译运行的,希望对你产生帮助. 原文: http://blog.csdn.net/caoyou

Android 第三方开源库收集整理(转)

原文地址:http://blog.csdn.net/caoyouxing/article/details/42418591 Android开源库 自己一直很喜欢Android开发,就如博客签名一样, 我是程序猿,我为自己代言 . 在摸索过程中,GitHub上搜集了很多很棒的Android第三方库,推荐给在苦苦寻找的开发者,而且我会 不定期的更新 这篇文章. Android下的优秀开发库数不胜数,在本文中,我列举的多是开发流程中最常用的一些.如果你还想了解更多的Android开源库,可以关注我的博