python爬虫方向的第三方库,[774]python爬虫:正文提取第三方库goose

Goose 是一个 文章内容提取器 ,可以从任意资讯文章类的网页中提取 文章主体 ,并提取 标题、标签、摘要、图片、视频 等信息,且 支持中文 网页。它最初是由 http://Gravity.com 用 Java 编写的。python-goose 是用 Python 重写的版本。

有了这个库,你从网上爬下来的网页可以直接获取正文内容,无需再用 bs4 或正则表达式一个个去处理文本。

正文提取库goose,效果不是太好,要求不高的话可以试试用

pypi:https://pypi.org/project/goose3/3.0.6/

安装

py2

网上大多数教程提到的 python-goose 项目目前只支持到 python 2.7。可以通过 pip 安装:

pip install goose-extractor

或者安装官网上的方法从源代码安装:

git clone https://github.com/grangier/python-goose.git

cd python-goose

pip install -r requirements.txt

python setup.py install

py3

pip install goose3

经过我一些简单的测试,未发现两个版本在结果上有太大的差异。

# -*- coding: utf-8 -*-

from goose import Goose

from goose.text import StopWordsChinese

# 初始化,设置中文分词

g = Goose({'stopwords_class': StopWordsChinese})

url = "http://www.xinhuanet.com/"

#提取,可以传入 url 或者 html 文本:

article = g.extract(url=url)

#article = g.extract(raw_html=html)

print(article.title)# 标题

print(article.cleaned_text)# 显示正文

除了标题 title 和正文 cleaned_text 外,还可以获取一些额外的信息,比如:

meta_description :摘要

meta_keywords :关键词

tags :标签

top_image :主要图片

infos :包含所有信息的 dict

raw_html :原始 HTML 文本

如有有些网站限制了程序抓取,也可以根据需要添加 user-agent 信息:

g = Goose({'browser_user_agent': 'Version/5.1.2 Safari/534.52.7'})

如果是 goose3,因为使用了 requests 库作为请求模块,因此还可以以相似方式配置 headers、proxies 等属性。

在上述示例中使用到的 StopWordsChinese 为中文分词器,可一定程度上提高中文文章的识别准确率,但更耗时。

其他说明

1、Goose 虽然方便,但并不能保证每个网站都能精确获取,因此 适合大规模文章的采集 ,如热点追踪、舆情分析等。它只能从概率上保证大多数网站可以相对准确地抓取。我经过一些尝试后发现,抓取英文网站优于中文网站,主流网站优于小众网站,文本的提取优于图片的提取。

2、从项目中的 requirements.txt 文件可以看出,goose 中使用到了 Pillow、lxml、cssselect、jieba、beautifulsoup、nltk ,goose3 还用到了 requests ,我们之前很多文章和项目中都有所涉及:

3、如果你是使用基于 python2 的 goose,有可能会遇到 编码 上的问题(尤其是 windows 上)。这方面可以在公众号对话里回复关键词 编码 ,我们有过相关的讲解。

4、除了 goose 外,还有其他的正文提取库可以尝试,比如 python-boilerpipe、python-readability 等。

参考:https://blog.csdn.net/mouday/article/details/81211622

https://www.cnblogs.com/wangshicheng/p/10122746.html

本文同步分享在 博客“周小董”(CSDN)。

如有侵权,请联系 support@oschina.cn 删除。

本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值