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标签的文本。然而在好多情况下经过readability过滤后的带HTML标签的文本是我们不想要的,也就是readability取错内容了,面对这种情况我们可以先对传入前的html操作。

例如,需要提取的正文在<div class="arti-con rel">下即<div class="arti-con rel">与<div class="clearfix page-n-p-con">之间,我们可以采取下面的操作。

from readability.readability import Document

from scrapy .selector import HtmlXPathSelector
             from scrapy.http import HtmlResponse

import urllib

html = urllib.urlopen(url).read()

content_t = html.split(‘<div class="arti-con rel">‘)[-1].strip().split(‘<div class="clearfix page-n-p-con"‘)[0].strip()
             content_t = ‘<div class="arti-con rel">‘ + content_t

readable_article = Document(content_t ).summary()

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

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

经过这样处理获得的正文相对干净,并减少了获取不到的现象,缺点是不适合多种页面的网站。

时间: 2024-12-25 08:35:58

Python readability提取网页正文的优化的相关文章

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

前段时间在工作中,需要提取出网页的正文,就试验了一下机中提取网页正文开源库. 试验中主要试验了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的使用: 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

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

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

python BeautifulSoup获取网页正文

通过BeautifulSoup库的get_text方法找到网页的正文: #!/usr/bin/env python #coding=utf-8 #HTML找出正文 import requests from bs4 import BeautifulSoup url='http://www.baidu.com' html=requests.get(url) soup=BeautifulSoup(html.text) print soup.get_text()

python 正则表达式 提取网页中标签的中文

转载请注明出处 http://www.cnblogs.com/pengwang57/. >>> p= re.compile(r'\<div class="comment-content comment-content_new"\>([^x00-xff]*)\<\/div\>') >>> text='<div class="comment-content comment-content_new">

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

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

Python Show-Me-the-Code 第 0009 题 提取网页中的超链接

第 0009 题:一个HTML文件,找出里面的链接. 思路:对于提取网页中的超链接,先把网页内容读取出来,然后用beautifulsoup来解析是比较方便的.但是我发现一个问题,如果直接提取a标签的href,就会包含javascript:xxx和#xxx之类的,所以要对这些进行特殊处理. 0009.提取网页中的超链接.py #!/usr/bin/env python #coding: utf-8 from bs4 import BeautifulSoup import urllib import

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

转自: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学习笔记——爬虫中提取网页中的信息

1 数据类型 网页中的数据类型可分为结构化数据.半结构化数据.非结构化数据三种 1.1 结构化数据 常见的是MySQL,表现为二维形式的数据 1.2 半结构化数据 是结构化数据的一种形式,并不符合关系型数据库或其他数据表的形式关联起来的数据模型结构,但包含相关标记,用来分隔语义元素以及对记录和字段进行分层.因此,它也被称为自描述的结构.常见的半结构数据有HTML,XML和JSON等,实际上是以树或者图的结构来存储的. <person> <name>A</name> &l