Project Icon

fundus

轻量级Python新闻爬虫库

Fundus是一个开源的Python新闻爬虫库,支持从在线网站和CC-NEWS数据集抓取文章。它覆盖多个英语新闻源,包括美英主要出版商。Fundus的文本提取精度高,F1分数达97.69。该工具使用简单,支持自定义过滤,并鼓励社区贡献。Fundus适用于新闻分析、媒体监测、学术研究等领域,为用户提供高质量的新闻数据采集解决方案。

Logo

一个非常简单的Python新闻爬虫。 由柏林洪堡大学开发。

PyPi版本 python Static Badge 发布商覆盖率


Fundus是:

  • 一个静态新闻爬虫。 Fundus让你只需几行Python代码就能爬取在线新闻文章! 无论是从实时网站还是CC-NEWS数据集。

  • 一个开源Python包。 Fundus的理念是共同构建。 我们欢迎你的贡献,帮助Fundus成长


快速开始

要从pip安装,只需执行:

pip install fundus

Fundus需要Python 3.8+。

示例1:爬取一批英语新闻文章

让我们使用Fundus从美国的发布商那里爬取2篇文章。

from fundus import PublisherCollection, Crawler

# 初始化美国新闻发布商的爬虫
crawler = Crawler(PublisherCollection.us)

# 爬取2篇文章并打印
for article in crawler.crawl(max_articles=2):
    print(article)

就这么简单!

如果你运行这段代码,它应该会打印出类似这样的内容:

Fundus-Article:
- 标题: "费恩斯坦的回归不足以确认有争议的新[...]"
- 正文:  "周四,民主党人在最后一刻通过了对乔·拜登总统三名有争议的法院提名人的投票,
          这要归功于[...]"
- URL:    https://freebeacon.com/politics/feinsteins-return-not-enough-for-confirmation-of-controversial-new-hampshire-judicial-nominee/
- 来源:   FreeBeacon (2023-05-11 18:41)

Fundus-Article:
- 标题: "西北大学学生政府因[...]冻结共和党学生团体资金"
- 正文:  "伊利诺伊州西北大学的学生政府"无限期"冻结了该大学
          共和党学生分会的资金[...]"
- URL:    https://www.foxnews.com/us/northwestern-student-government-freezes-college-republicans-funding-poster-critical-lgbtq-community
- 来源:   FoxNews (2023-05-09 14:37)

这个输出告诉你已经成功爬取了两篇文章!

对于每篇文章,输出详细列出了:

  • 文章的"标题",即其头条
  • "正文",即文章的主体内容
  • 爬取的"URL"
  • 新闻"来源"

示例2:爬取特定新闻来源

也许你想爬取特定的新闻来源。让我们只爬取《纽约客》的新闻文章:

from fundus import PublisherCollection, Crawler

# 初始化《纽约客》的爬虫
crawler = Crawler(PublisherCollection.us.TheNewYorker)

# 爬取2篇文章并打印
for article in crawler.crawl(max_articles=2):
    print(article)

示例3:爬取100万篇文章

为了爬取如此大量的数据,Fundus依赖于CommonCrawl网络存档,特别是新闻爬虫CC-NEWS。 如果你不熟悉CommonCrawlCC-NEWS,请查看他们的网站。 只需导入我们的CCNewsCrawler,并确保事先查看我们的教程

from fundus import PublisherCollection, CCNewsCrawler

# 使用fundus支持的所有发布商初始化爬虫
crawler = CCNewsCrawler(*PublisherCollection)

# 爬取100万篇文章并打印
for article in crawler.crawl(max_articles=1000000):
  print(article)

注意:默认情况下,爬虫会利用你系统上所有可用的CPU核心。 为了获得最佳性能,我们建议使用processes参数手动设置进程数。 一个好的经验法则是每200 Mbps带宽分配一个进程。 这可能会根据核心速度而有所不同。

注意:上述爬取在使用整个PublisherCollection的情况下,在一台配备1000 Mbps连接、Core i9-13905H、64GB内存、Windows 11的机器上耗时约7小时,且不打印文章。 估计时间可能会根据使用的发布商和可用带宽而有很大差异。 此外,并非所有发布商都包含在CC-NEWS爬虫中(尤其是美国的发布商)。 对于大规模语料库创建,也可以通过只使用网站地图来使用常规爬虫,这需要的带宽明显更少。

from fundus import PublisherCollection, Crawler, Sitemap

# 初始化美国/英国发布商的爬虫,并限制只使用网站地图
crawler = Crawler(PublisherCollection.us, PublisherCollection.uk, restrict_sources_to=[Sitemap])

# 爬取100万篇文章并打印
for article in crawler.crawl(max_articles=1000000):
  print(article)

教程

我们提供快速教程帮助你开始使用这个库:

  1. 教程1:如何使用Fundus爬取新闻
  2. 教程2:如何从CC-NEWS爬取文章
  3. 教程3:Article类
  4. 教程4:如何过滤文章
  5. 教程5:高级主题
  6. 教程6:日志记录

如果您想贡献,请查看以下教程:

  1. 如何贡献
  2. 如何添加出版商

当前支持的新闻来源

您可以在这里找到目前支持的出版商。

同时:添加新的出版商很简单 - 考虑为项目做出贡献!

评估基准

查看我们的评估基准

爬虫精确度召回率F1得分
Fundus99.89±0.5796.75±12.7597.69±9.75
Trafilatura90.54±18.8693.23±23.8189.81±23.69
BTE81.09±19.4198.23±8.6187.14±15.48
jusText86.51±18.9290.23±20.6186.96±19.76
news-please92.26±12.4086.38±27.5985.81±23.29
BoilerNet84.73±20.8290.66±21.0585.77±20.28
Boilerpipe82.89±20.6582.11±29.9979.90±25.86

引用

使用Fundus或基于我们的工作进行开发时,请引用以下论文

@inproceedings{dallabetta-etal-2024-fundus,
    title = "Fundus: A Simple-to-Use News Scraper Optimized for High Quality Extractions",
    author = "Dallabetta, Max  and
      Dobberstein, Conrad  and
      Breiding, Adrian  and
      Akbik, Alan",
    editor = "Cao, Yixin  and
      Feng, Yang  and
      Xiong, Deyi",
    booktitle = "Proceedings of the 62nd Annual Meeting of the Association for Computational Linguistics (Volume 3: System Demonstrations)",
    month = aug,
    year = "2024",
    address = "Bangkok, Thailand",
    publisher = "Association for Computational Linguistics",
    url = "https://aclanthology.org/2024.acl-demos.29",
    pages = "305--314",
}

联系方式

请将您的问题或意见发送邮件至Max Dallabetta

贡献

感谢您对贡献的兴趣!有很多方式可以参与进来; 从我们的贡献者指南开始,然后 查看这些未解决的问题以了解具体任务。

许可证

MIT

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号