本章节将会系统地介绍如何通过Scrapy框架把爬虫工程化。本节主要内容是:简单介绍Python和爬虫的关系,以及将要使用的Scrapy框架的工作流程。
Python适合做爬虫的原因
- 语言本身简单,适合敏捷开发
- 有比较完善的工具链
- 足够灵活,以应对各种突然状况
爬虫的知识体系
- 前端相关知识:html,css,js;浏览器相关知识;
- 各种数据库的运用;
- http协议的了解;
- 对于前后台联动的方案;
爬虫进阶的工作流程
Scrapy运行流程:
- Spiders发送第一个URL给引擎
- 引擎从Spider中获取到第一个要爬取的URL后,在调度器(Scheduler)以Request调度
- 调度器把需要爬取的request返回给引擎
- 引擎将request通过下载中间件发给下载器(Downloader)去互联网下载数据
- 一旦数据下载完毕,下载器获取由互联网服务器发回来的Response,并将其通过下载中间件发送给引擎
- 引擎从下载器中接收到Response并通过Spider中间件发送给Spider处理
- Spider处理Response并从中返回匹配到的Item及(跟进的)新的Request给引擎
- 引擎将(Spider返回的)爬取到的Item给Item Pipeline做数据处理或者入库保存,将(Spider返回的)Request给调度器入队列
- (从第三步)重复直到调度器中没有更多的request
补充资料
什么是Scrapy框架?
<