Python爬虫框架Newspaper使用详解与避坑指南

周予安
周予安
发布时间:2026-10-16 | 4人浏览过
原创

本文详细介绍Python爬虫框架Newspaper的安装、基本用法及高级功能。通过单条新闻获取、缓存机制配置及多任务爬取等实例,展示其核心能力。同时指出该框架在中文环境下可能存在的识别BUG,并提供结合requests与bs4的替代建议,帮助开发者更高效地实现内容抓取。

写在前面

原计划继续撰写关于Portia的使用教程,但在编写代码过程中发现,在Windows 7的DockerToolbox环境中运行Portia时错误频发。建议读者尽量在Linux虚拟机或直接部署在服务器上进行操作,以避免不必要的精力消耗。

今天我们将话题转向另一款工具newspaper。

newspaper

GitHub地址:github.com/codelucas/n…

从名称即可推测,该库与报纸或新闻内容相关。它主要用于文章的抓取和整理,由国内开发者主导,其GitHub页面也收录了其他开发者的推荐意见。

例如,requests库作者在Twitter上曾给予高度评价。

"Newspaper is an amazing python library for extracting & curating articles."

The Changelog网站也专门撰写了评价文章,值得参考。

Newspaper delivers Instapaper style article extraction.

鉴于这款爬虫库已走向国际,我们有必要对其进行详细介绍。

安装过程非常简单。

pip install newspaper3k -i pypi.tuna.tsinghua.edu.cn/simple

官方文档查阅地址:newspaper.readthedocs.io/en/latest/u…

newspaper框架的使用

该框架的使用难度较低,简单参照文档页面即可上手应用。

例如:单条新闻内容获取

第一种应用场景是直接获取网页内容。

from newspaper import Article
url = "https://36kr.com/p/857678806293124"
article = Article(url) # 创建文章对象
article.download()        # 加载网页
article.parse()           # 解析网页
print(article.html) # 打印html文档

当然,该框架还提供其他属性,但它是基于关键字识别的,因此存在一些BUG,有时识别结果可能不准确。

# print(article.html) # 打印html文档
print(article.text) # 新闻正文
print("-"*100)
print(article.title) # 新闻标题
print("-"*100)
print(article.authors)  # 新闻作者
print("-"*100)
print(article.summary)   # 新闻摘要
print(article.keywords) # 新闻关键词
# print(article.top_image) # 本文的top_image的URL
# print(article.images) # 本文中的所有图像url

newspaper文章缓存

默认情况下,newspaper会缓存所有待提取的文章,一旦文章被爬取完毕,缓存即被清除。此功能旨在防止重复爬取并提高提取速度。可以通过设置memoize_articles参数来选择是否启用缓存。

然而,当我尝试使用上述方法提取文章时,遇到了一个神奇的BUG,始终无法获取到预期的文章内容。看来该框架的完善工作仍需持续进行。

import newspaper
url = "https://news.sina.com.cn/c/2020-08-29/doc-iivhvpwy3651884.shtml"
# article = Article(url) # 创建文章对象
# article.download()        # 加载网页
# article.parse()           # 解析网页
news = newspaper.build(url, language='zh', memoize_articles=False)
article = news.articles[0]
article.download()
article.parse()
print('title=',article.title)

其他功能

在实际应用中发现,该框架的解析功能存在较大问题,但整体框架设计思路值得肯定。虽然前期期待较高,后期体验却有所落差。参考GitHub上的评价,对newspaper曾抱有较高期望,但实际使用后,建议结合requests库与bs4库自行开发可能更为合理。

除了上述简要介绍的功能外,它还具备一些扩展能力,如下所示:

  • 结合requests和newspaper解析网页正文,即使用requests进行爬取,newspaper作为解析器。
  • 可以调用Google Trends信息。
  • 支持多任务爬取。
  • 支持NPL自然语言处理。
  • 甚至官方文档还提供了一个Easter Eggs复活节彩蛋,可查阅文档底部获取。

总之,体验一言难尽。

写在后面

本打算深入玩转Python的NewSpaper爬虫框架,但看来难度较大。不过,扩展知识点也是有益的。当然,下载GitHub源码后,仔细研究大佬的编码规范,也能学到不少东西。

以上就是Python爬虫框架NewSpaper使用详解的详细内容,更多关于Python爬虫框架NewSpaper的资料请关注本站其它相关文章!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表