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

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

试验中主要试验了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”,但是仍有部分网页是提取不出来正文的,还需要努力,同时,有些网页不堪忍睹。

转载于:https://www.cnblogs.com/yetuweiba/p/4149683.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: ofd2img是一个开源,可以将OFD(Open Financial Data)格式的文件转换为图片。OFD是一种国内金融行业常用的文档格式,但在一些场景中需要将其转换成图片格式以方便使用和展示。 使用ofd2img非常简单,只需按照以下步骤进行操作即可: 1. 下载ofd2img并将其导入到项目中。 2. 调用相关函数或方法以打开OFD文件,可以传入OFD文件的路径或流对象作为参数。 3. 设置输出图片的格式和质量。可以选择常见的图片格式,如JPEG、PNG等,并设置输出图片的分辨率和质量。 4. 调用转换函数或方法开始转换。ofd2img将按照设定的参数将OFD文件转换为对应的图片格式。 5. 根据需要对输出的图片进行进一步处理。例如,可以进行图片裁剪、调整大小、添加水印等操作,以满足实际需求。 6. 最后保存或展示转换后的图片。可以选择保存到本地文件系统或直接展示在应用程序界面上。 使用ofd2img可以轻松地将OFD文件转换成图片格式,方便后续处理和使用。通过调整输出图片的格式和质量,用户可以根据自身需求选择最合适的图片形式。该开源的简单易用性使得OFD文件的图片转换变得简便快捷。 ### 回答2: ofd2img是一个开源,用于将OFD(Open Financial Data,开放金融数据)格式的文件转换为图像格式(如PNG、JPEG等)。使用ofd2img可以方便地提取OFD文件中的内容,并将其转换为图片,便于打印、展示和共享。 要使用ofd2img,首先需要安装该。可以通过GitHub等开源平台找到并下载ofd2img的源代码,然后按照说明文档进行安装。安装完成后,可以在命令行或代码中使用相关的命令或函数调用ofd2img。 使用ofd2img主要分为以下几个步骤: 1. 打开OFD文件:通过指定OFD文件路径,使用ofd2img打开要转换的OFD文件。 2. 解析OFD内容:ofd2img会自动解析OFD文件的结构和内容,包括页面、文字、图片等信息。 3. 转换为图像:根据需求,可以选择将OFD文件的全部页面转换为图片,或者只转换其中的某几页。可以指定输出格式、分辨率和其他参数进行转换。 4. 保存图像:将转换后的图像保存在指定的路径下,以便后续使用或分享。 使用ofd2img可以方便地将OFD文件转换为图像,使其更加易于使用和分享。无论是需要打印、展示还是传输,都可以通过ofd2img将OFD文件转换为常见的图像格式,方便使用不同的设备和软件进行处理。同时,ofd2img是一个开源,有广泛的社区支持和更新,可以根据实际需求进行二次开发和定制。 ### 回答3: ofd2img是一种开源,用于将OFD(Open Financial Data)文件转换为图片格式。 首先,我们需要在计算机上安装ofd2img。可以通过在终端或命令提示符中运行适当的命令来完成安装。安装完成后,我们可以通过调用中的函数来使用它。 要使用ofd2img进行转换,我们需要提供OFD文件路径和输出图片的路径。此外,我们还可以指定所需的转换选项,如输出图片的格式和分辨率等。 一旦指定了输入和输出路径以及所需的选项,我们就可以调用ofd2img中的转换函数。该函数将读取OFD文件,并根据指定的选项将其转换为所需的图片格式。转换完成后,输出图片将保存在指定的输出路径中。 通过使用ofd2img,我们可以方便地将OFD文件转换为常见的图片格式,如JPEG或PNG等。这对于需要将OFD文件嵌入到网页或文档中的应用程序非常有用。此外,由于ofd2img是一个开源,我们可以根据需要修改和定制它,以满足我们的特定需求。 总而言之,ofd2img开源提供了一种便捷的方式来将OFD文件转换为图片格式。通过正确安装和使用中的函数,我们可以轻松地完成这个转换过程,从而满足各种应用的需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值