项目介绍:news-please
简介
news-please 是一个开源且易于使用的新闻抓取工具,能够从几乎任何新闻网站上提取结构化信息。用户只需提供新闻网站的根 URL,就能完整地抓取其中的内容。它支持超过当下主流工具库的整合,包括 scrapy、Newspaper 和 readability。news-please 不仅能递归地跟随站内链接,还能读取 RSS 源,以有效抓取最新及存档的文章。
核心功能
- 开箱即用:安装完成后,添加新闻网站的 URL,即可运行。
- CLI 模式:通过命令行界面运行 news-please。
- 库模式:可在用户自定义的软件中作为库引入使用。
- 提取 commoncrawl.org 的新闻存档文章。
使用场景
news-please 主要支持以下三种使用场景:
CLI 模式
- 提取的结果可存储为 JSON 文件,或存储于 PostgreSQL、ElasticSearch、Redis,甚至用户自定义的存储系统中。
- 简单但丰富的配置选项,方便用户调整抓取结果。
- 数次抓取文章,以跟踪内容变化。
库模式
- 用户可提供文章的 URL 列表进行抓取与提取内容。
- 可在用户的 Python 代码中直接使用 news-please。
commoncrawl.org 新闻存档
- commoncrawl.org 提供了一个全球范围内小型及大型新闻发行者的免费新闻文章存档。
- 用户可便捷地下载和提取 commoncrawl.org 的文章,还可以定义过滤标准,如新闻发布者或发布时间段。
信息提取
news-please 可从新闻文章中提取以下信息:
- 标题
- 引言段落
- 主体文本
- 主图
- 作者姓名
- 发布日期
- 语言
快速开始
安装
news-please 需要 Python 3.8 或更高版本。安装只需一行命令:
$ pip install news-please
代码示例
在库模式下使用 news-please 的示例代码:
from newsplease import NewsPlease
article = NewsPlease.from_url('https://www.nytimes.com/2017/02/23/us/politics/cpac-stephen-bannon-reince-priebus.html?hp')
print(article.title)
通过 CLI 运行抓取程序
在命令行终端运行以下命令启动抓取过程:
$ news-please
配置与存储
news-please 支持导出文章到 ElasticSearch、PostgreSQL 和 Redis。用户可以根据需要修改配置文件来指定数据库连接和存储细节。
贡献与支持
news-please 欢迎用户贡献代码或提供拉取请求(pull requests)以修复漏洞或改进功能。同时,项目团队也接受捐赠,以支持更多功能开发和错误修复。使用 news-please 时,请按照项目的 Apache License, Version 2.0 使用相关许可证。