前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[774]python爬虫:正文提取第三方库goose

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

作者头像
周小董
发布2020-03-23 16:47:33
1.5K0
发布2020-03-23 16:47:33
举报
文章被收录于专栏:python前行者

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

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

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

python2 github:https://github.com/grangier/python-goose

python3 github:https://github.com/goose3/goose3

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

安装

  • py2

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

代码语言:javascript
复制
pip install goose-extractor

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

代码语言:javascript
复制
git clone https://github.com/grangier/python-goose.git
cd python-goose
pip install -r requirements.txt
python setup.py install
  • py3
代码语言:javascript
复制
pip install goose3

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

代码语言:javascript
复制
# -*- 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 信息:

代码语言:javascript
复制
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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/03/19 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装
  • 其他说明
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档