什么是定向(聚焦)爬虫
定向爬虫,核心就是:只抓取特定目标站点、特定栏目、特定数据字段的爬虫。
它和“全网搜索式爬虫”不同,目标非常明确,通常只关心这些问题:
- 抓哪个网站
- 抓哪些页面
- 提取哪些字段
- 如何保存结果
Scrapy 非常适合这种场景,因为它天生就是为规则清晰、结构化采集设计的。
1.Scrapy是什么
Scrapy 是 Python 生态里非常经典的爬虫框架,适合做:
- 定向数据采集
- 批量网页抓取
- 链接跟踪
- 数据清洗与落库
- 中大型爬虫工程化管理
它不是简单的 requests + BeautifulSoup 拼装,而是一个完整框架,内置了:
- 请求调度
- 异步下载
- URL 去重
- 数据管道
- 中间件机制
- 导出能力
所以它更像一个爬虫开发平台。
2.Scrapy 的工作流
Scrapy 的基本处理流程如下:
flowchart LR
A[Spider 发起初始请求] --> B[Engine 引擎]
B --> C[Scheduler 调度器]
C --> D[Downloader 下载器]
D --> E[网页响应 Response]
E --> B
B --> F[Spider 解析页面]
F --> G[提取 Item 数据]
F --> H[继续生成新 Request]
G --> I[Item Pipeline 清洗/存储]
各组件职责
- Spider 定义抓取规则与解析逻辑。
- Engine 负责组件间协调,相当于总控。
- Scheduler 对待抓取请求排队、去重、调度。
- Downloader 真正发 HTTP 请求并获取响应。
- Item 定义你想提取的数据结构。
- Pipeline 对提取出的数据做清洗、去重、保存。
- Middleware 可对请求和响应做统一拦截处理,比如:
- 设置代理
- 设置请求头
- 处理重试
- 动态 UA