Python 爬虫-feapder 框架简介

Feapder是一款易上手的Python爬虫框架,类似Scrapy,适合数据量小到中等的场景。它包含3种类型的爬虫,支持分布式和数据入库。框架由spider、parser_control、collector等模块组成,数据流程包括任务下发、请求下载和解析入库。此外,还支持自定义中间件、下载器和对接自动化,如浏览器渲染。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

feapder 框架

学习目标

  • 掌握便捷式框架操作流程

  • 掌握请求钩子结构使用

  • 掌握框架项目搭建流程

  • 掌握数据入库与去重

1 简介

国内文档:https://boris-code.gitee.io/feapder

feapder 是一款上手简单,功能强大的Python爬虫框架,使用方式类似scrapy,方便由scrapy框架切换过来,框架内置3种爬虫:

1.1 支持的场景
  • AirSpider爬虫比较轻量,学习成本低。面对一些数据量较少,无需断点续爬,无需分布式采集的需求,可采用此爬虫。
  • Spider是一款基于redis的分布式爬虫,适用于海量数据采集,支持断点续爬、爬虫报警、数据自动入库等功能
  • BatchSpider是一款分布式批次爬虫,对于需要周期性采集的数据,优先考虑使用本爬虫。
1.2 架构说明

image

1.2.1模块说明
  • spider 框架调度核心
  • parser_control 模版控制器,负责调度parser
  • collector 任务收集器,负责从任务队里中批量取任务到内存,以减少爬虫对任务队列数据库的访问频率及并发量
  • parser 数据解析器
  • start_request 初始任务下发函数
  • item_buffer 数据缓冲队列,批量将数据存储到数据库中
  • request_buffer 请求任务缓冲队列,批量将请求任务存储到任务队列中
  • request 数据下载器,封装了requests,用于从互联网上下载数据
  • response 请求响应,封装了response, 支持xpath、css、re等解析方式,自动处理中文乱码
1.2.2 流程说明
  1. spider调度start_request生产任务
  2. start_request下发任务到request_buffer中
  3. spider调度request_buffer批量将任务存储到任务队列数据库中
  4. spider调度collector从任务队列中批量获取任务到内存队列
  5. spider调度parser_control从collector的内存队列中获取任务
  6. parser_control调度request请求数据
  7. request请求与下载数据
  8. request将下载后的数据给response,进一步封装
  9. 将封装好的response返回给parser_control(图示为多个parser_control,表示多线程)
  10. parser_control调度对应的parser,解析返回的response(图示多组parser表示不同的网站解析器)
  11. parser_control将parser解析到的数据item及新产生的request分发到item_bufferrequest_buffer
  12. spider调度item_bufferrequest_buffer将数据批量入库

2 使用

2.1 环境安装
pip install feapder
2.2 创建普通爬虫
feapder create -s xxxx
2.3 爬虫小案例
  1. 下发任务:下发任务
def start_requests(self):
        yield feapder.Request("https://www.icswb.com/channel-list-channel-161.html")
  1. 解析标题及详情页链接
def parse(self, request, response):
        # 提取网站title
        print(response.xpath("//title/text()").extract_first())
        # 提取网站描述
        article_list = response.xpath('//ul[@id="NewsListContainer"]/li')
        for i in article_list[:-1]:
            title = i.xpath('./h3/a/text()').extract_first()
            url = i.xpath('./h3/a/@href').extract_
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值