器→工具, 开源项目

新闻文章提取工具:newspaper

钱魏Way · · 3 次浏览

Newspaper3k

Newspaper3k 是一个专门用于新闻文章抓取和内容提取的Python库。该项目由 Lucas Ou-Yang 开发,灵感来源于Requests库的简洁性,底层使用lxml实现高效解析。

核心特性

  • 文章内容提取
    • 自动提取文章标题、正文、作者、发布时间
    • 提取顶部图片和所有相关图片
    • 识别视频链接
    • 支持多语言(10+种语言)
  • 自然语言处理功能
    • 关键词提取
    • 自动摘要生成
    • 语言自动检测
  • 批量处理能力
    • 支持构建整个新闻源
    • 多线程下载框架
    • 自动识别分类URL

基本用法示例

from newspaper import Article

# 单篇文章处理
url = 'http://example.com/article'
article = Article(url)
article.download()
article.parse()

print(article.title)
print(article.authors)
print(article.text)

# NLP处理
article.nlp()
print(article.keywords)
print(article.summary)

# 批量处理新闻源
cnn_paper = newspaper.build('http://cnn.com')
for article in cnn_paper.articles:
    print(article.url)

Newspaper4k

Newspaper4k 是 Newspaper3k 的一个活跃分支,由 AndyTheFactory 维护。由于原项目长期未更新,Newspaper4k 旨在继续发展和改进这个库。

改进和新特性

  • 功能增强
    • 支持更多语言(80+种)
    • 集成Google News支持
    • 提供命令行接口(CLI)
    • 多种输出格式(JSON、CSV、文本)
  • 性能优化
    • 改进了文章提取算法
    • 更好的语言检测
    • 增强的多线程处理
  • 开发者体验
    • 更好的文档
    • 类型提示支持
    • 更严格的代码质量控制

基本用法示例

import newspaper

# 单篇文章处理
article = newspaper.article('https://example.com/article')
print(article.authors)
print(article.publish_date)
print(article.text)

# 命令行使用
# python -m newspaper --url="URL" --language=en --output-format=json

# Google News集成
from newspaper.google_news import GoogleNewsSource
source = GoogleNewsSource(country="US", period="7d", max_results=10)
source.build(top_news=True)
source.download_articles()

性能评估对比

根据项目提供的基准测试数据:

版本 BLEU分数 F1分数
Newspaper3k 0.2.8 0.8660 0.9100
Newspaper4k 0.9.3 0.9531 0.9460

主要差异对比

特性 Newspaper3k Newspaper4k
维护状态 已停止更新 活跃维护
Python版本 Python 3 Python 3.8+
语言支持 10+种 80+种
Google News 不支持 支持
命令行工具
性能 基础版本 显著改进
文档质量 一般 更好
类型提示 支持

建议

对于新项目,强烈推荐使用Newspaper4k,因为它:

  • 有活跃的维护和bug修复
  • 性能更好
  • 功能更丰富
  • 有更好的开发者体验

对于现有使用Newspaper3k的项目,可以考虑迁移到Newspaper4k,因为API保持兼容,迁移成本较低。

参考链接:

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注