scrapy组件介绍

Scrapy2.19为例

  • 异步并发:基于Twisted事件驱动,支持async/await
  • 高并发爬取:适合大量URL和网络IO场景
  • Middleware机制:方便处理代理、Cookie、User-Agent、重试等
  • Scheduler调度:负责Request排队、优先级和去重
  • Pipeline处理数据:清洗、校验、保存数据库
  • 支持任务暂停恢复:通过JOBDIR保存爬取状态
  • 高度可扩展:支持自定义Middleware、Pipeline、Extension等

核心架构

1
2
3
4
5
6
7
8
9
10
11
12
13
Spider
↓
Engine
↓
Scheduler
↓
Downloader
↓
Response
↓
Spider
↓
Item → Pipeline → 数据库

各组件作用:

组件 作用
Spider 写爬虫逻辑、解析页面
Engine 协调所有组件
Scheduler Request排队、去重
Downloader 发送HTTP请求
Middleware 修改Request/Response
Pipeline 清洗和保存数据