Skip to main content

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了。

另外如何保证每条数据在每个批次内都得以更新呢?

本框架支持批次采集,引入了批次表的概念,详细记录了每一批次的抓取状态

-w899

2. 支持分布式采集

面对海量的数据,分布式采集必不可少的,本框架支持分布式,且可随时重启爬虫,任务不丢失

3. 支持多模板采集

有时我们要采集数十个数据源,采集的结构化信息一致,通常我们会编写数十个爬虫,然后启动数十个窗口去采集,这样我们管理起来比较麻烦。本框架支持将多种数据源(多模板)集成到一个爬虫里来管理,降低维护成本

4. 支持海量数据去重

框架内置3种去重机制,通过简单的配置可对任务及数据自动去重,也可拿出来单独作为模块使用,支持批量去重。

  1. 临时去重:处理一万条数据约0.26秒。 去重1亿条数据占用内存约1.43G,可指定去重的失效周期
  2. 内存去重:处理一万条数据约0.5秒。 去重一亿条数据占用内存约285MB
  3. 永久去重:处理一万条数据约3.5秒。去重一亿条数据占用内存约285MB

5. 数据自动入库

只需要根据数据库表自动生成item,然后给item属性赋值,直接yield 返回即可批量入库

6. 支持Debug模式

爬虫支持debug模式,debug模式下默认数据不入库、不修改任务状态。可针对某个任务进行调试,方便开发

7. 完善的报警机制

为了保证数据的全量性、准确性、时效性,本框架内置报警机制,有了这些报警,我们可以实时掌握爬虫状态

  1. 实时计算爬虫抓取速度,估算剩余时间,在指定的抓取周期内预判是否会超时

    -w657

  2. 爬虫卡死报警

    -w501

  3. 爬虫任务失败数过多报警,可能是由于网站模板改动或封堵导致

    -w416

8. 下载监控

框架对请求总数、成功数、失败数、解析异常数进行监控,将数据点打入到infuxdb,结合Grafana面板,可方便掌握抓取情况

-w1299

学习交流

官方文档: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.

Source Distribution

feapder-1.1.5.tar.gz (99.0 kB view details)

Uploaded Source

Built Distribution

feapder-1.1.5-py3-none-any.whl (119.9 kB view details)

Uploaded Python 3

File details

Details for the file feapder-1.1.5.tar.gz.

File metadata

  • Download URL: feapder-1.1.5.tar.gz
  • Upload date:
  • Size: 99.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.6.3

File hashes

Hashes for feapder-1.1.5.tar.gz
Algorithm Hash digest
SHA256 c58c4f8621eca77dd46e349a3e5446a042849a1dfdde2b44395965eb6148acd0
MD5 6ed8dd3850956b7450f0803ce517573f
BLAKE2b-256 da0ef8c2de8b79d493920e633f7c139aaab9945f1c16a63f8cc340ef4cf6d154

See more details on using hashes here.

File details

Details for the file feapder-1.1.5-py3-none-any.whl.

File metadata

  • Download URL: feapder-1.1.5-py3-none-any.whl
  • Upload date:
  • Size: 119.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.6.3

File hashes

Hashes for feapder-1.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 760866ed00c4f3680aac1bb37ee2c6e71493451ffcc4ec143dcafc288e978950
MD5 d0b14ffe47fbd78f28944632cfceb6f6
BLAKE2b-256 29ca86762b2f9f3c0ae94d6315692d6fb101c3a166c69185a7504ef3d90b2a43

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page