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

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标签的文本。还需要进行clean html操作。如果需要得到纯文本内容,还需要做其他工作。

例如,提取正文

response = HtmlResponse(url=‘‘, body=readable_article, encoding=‘utf8‘)
             hxs = HtmlXPathSelector(response)

html_content = ‘‘.join(hxs.select(‘//text()‘).extract()).strip()

不过这种方式有好多情况提取不到正文。

Python Newspaper的使用:

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

核心示例代码如下所示:

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

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

Python Goose的使用:

代码比较方便,但是有些网址没有解析出来。

示例代码如下所示:

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]

结果:效果不好,有些网址解析不出来。

时间: 2024-10-12 01:38:11

常见的提取网页正文的方法的相关文章

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

前段时间在工作中,需要提取出网页的正文,就试验了一下机中提取网页正文开源库. 试验中主要试验了java和python两种提取正文的开源库,测试的连接是:http://www.chinanews.com/gj/2014/11-19/6791729.shtml.结果如下: A.Java: 1.Cx-extractor( http://cx-extractor.googlecode.com):基于行块的分布来提取网页中的正文. 提取的方法是首先使用Jsoup来获取网页的内容,之后将内容传给cx-ext

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 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

按示例学python:使用python抓取网页正文

本方法是基于文本密度的方法,最初的想法来源于哈工大的<基于行块分布函数的通用网页正文抽取算法>,本文基于此进行一些小修改. 约定: 本文基于网页的不同行来进行统计,因此,假设网页内容是没有经过压缩的,就是网页有正常的换行的. 有些新闻网页,可能新闻的文本内容比较短,但其中嵌入一个视频文件,因此,我会给予视频较高的权重:这同样适用于图片,这里有一个不足,应该是要根据图片显示的大小来决定权重的,但本文的方法未能实现这一点. 由于广告,导航这些非正文内容通常以超链接的方式出现,因此文本将给予超链接的

c#实现网页正文抓取

需要记住的,随笔记一下 1.抓取远程网页源码,这里要实现自动判断网页编码,否则有可能抓到乱码.我是先看应答的 http头的chareset,一般这个很准,但像csdn的新闻比较变态http应答的头里的chareset和网页的meta里声明的 chareset不一致,所以我手工加了一下判断,如果不一致再在内存流里用网页声明的编码读取一遍源码 2.把网页分割成几大块.试用了一下tidy的.net包装及HtmlParse的.net版本,都不太好用.于是我自己写了个算法,可以把网页里的div块,td块等

网页正文抽取

转自丕子:http://www.zhizhihu.com/html/y2013/4202.html 总结我用过的网页正文抽取工具: decruft http://t.cn/S7bVEC python-readabilityhttp://t.cn/zYeoZ8b boilerpipe http://t.cn/h41EEs python-boilerpipehttp://t.cn/zYeoyPw pismo http://t.cn/zYeoyP2 Goose http://t.cn/zYeoZ8G 

chrome浏览器提取网页视频

在我们平时上网看视频听音乐时都会产生缓存,但是我们很难通过一些软件把其中的视频和音乐文件提取出来 关于本文中提及的chrome浏览器,已在上一篇博文中提及,请自行翻阅:http://blog.sina.com.cn/s/blog_6fa5aa4a010136l5.html 在chrome浏览器中,可以利用F12键审查元素的功能查出原视频或音乐的源地址,可以通过源地址下载下来 先说抓取视频的方法: 1.打开视频地址,如:http://www.tudou.com/albumplay/BDG9NP__

JS获取网页宽高方法集合

JS获取网页宽高等方法的集合:document.body.clientWidth - 网页可见区域宽document.body.clientHeight - 网页可见区域高 document.body.offsetWidth - 网页可见区域宽,包括边线和滚动条的宽document.body.offsetHeight - 网页可见区域高,包括边线和滚动条的高[FF,chrom下是整个页面高,IE opera 下正常] document.body.scrollWidth - 网页总宽documen