A high-level Web Crawling and Web Scraping framework
Project description
FEAPDER
简介
feapder 是一款简单、快速、轻量级的爬虫框架。起名源于 fast、easy、air、pro、spider的缩写,以开发快速、抓取快速、使用简单、功能强大为宗旨,历时4年倾心打造。支持分布式爬虫、批次爬虫、多模板爬虫,以及完善的爬虫报警机制。
之前一直在公司内部使用,已使用本框架采集100+数据源,日采千万数据。现在开源,供大家学习交流!
读音: [ˈfiːpdə]
官方文档:http://boris.org.cn/feapder/
环境要求:
- Python 3.6.0+
- Works on Linux, Windows, macOS
安装
From PyPi:
pip3 install feapder
From Git:
pip3 install git+https://github.com/Boris-code/feapder.git
若安装出错,请参考安装问题
功能概览
1. 支持周期性采集
周期性抓取是爬虫中常见的需求,如每日抓取一次商品的销量等,我们把每个周期称为一个批次。
这类爬虫,普遍做法是设置个定时任务,每天启动一次。但你有没有想过,若由于某种原因,定时任务启动程序时没启动起来怎么办?比如服务器资源不够了,启动起来直接被kill了。
另外如何保证每条数据在每个批次内都得以更新呢?
本框架支持批次采集,引入了批次表的概念,详细记录了每一批次的抓取状态
2. 支持分布式采集
面对海量的数据,分布式采集必不可少的,本框架支持分布式,且可随时重启爬虫,任务不丢失
3. 支持多模板采集
有时我们要采集数十个数据源,采集的结构化信息一致,通常我们会编写数十个爬虫,然后启动数十个窗口去采集,这样我们管理起来比较麻烦。本框架支持将多种数据源(多模板)集成到一个爬虫里来管理,降低维护成本
4. 支持海量数据去重
框架内置3种去重机制,通过简单的配置可对任务及数据自动去重,也可拿出来单独作为模块使用,支持批量去重。
- 临时去重:处理一万条数据约0.26秒。 去重1亿条数据占用内存约1.43G,可指定去重的失效周期
- 内存去重:处理一万条数据约0.5秒。 去重一亿条数据占用内存约285MB
- 永久去重:处理一万条数据约3.5秒。去重一亿条数据占用内存约285MB
5. 数据自动入库
只需要根据数据库表自动生成item,然后给item属性赋值,直接yield 返回即可批量入库
6. 支持Debug模式
爬虫支持debug模式,debug模式下默认数据不入库、不修改任务状态。可针对某个任务进行调试,方便开发
7. 完善的报警机制
为了保证数据的全量性、准确性、时效性,本框架内置报警机制,有了这些报警,我们可以实时掌握爬虫状态
-
实时计算爬虫抓取速度,估算剩余时间,在指定的抓取周期内预判是否会超时
-
爬虫卡死报警
-
爬虫任务失败数过多报警,可能是由于网站模板改动或封堵导致
8. 下载监控
框架对请求总数、成功数、失败数、解析异常数进行监控,将数据点打入到infuxdb,结合Grafana面板,可方便掌握抓取情况
学习交流
官方文档:http://boris.org.cn/feapder/
知识星球:
星球会不定时分享爬虫技术干货,涉及的领域包括但不限于js逆向技巧、爬虫框架刨析、爬虫技术分享等
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.