是什么
scrapy是基于Twisted的异步处理框架,纯Python实现的爬虫框架,只需要定制开发模块就可以爬虫了
-
Engine(引擎):类似一个管理者
-
Scheduler(调度器):队列,接受ScrapyEngine(引擎)发送过来的Request请求,将请求排队
-
Downloader(下载器):负责下载所有request发送锅里的数据,并将其获得的response交还给引擎,再由引擎将response交还给Spiders进行解析
-
Spider(爬虫):负责处理所有的response,如果这里还有下一次请求,就再把请求传到Scheduler里。在这里会写很多解析策略
-
Item Pipline(管道):负责后期的处理存储过滤等
-
Middlewares(中间件) :Downloader Spider
流程:
- Spider写入口,Spider把入口交给引擎
- 引擎通知调度器,对任务进行排队,Scheduler把排好的地址给引擎
- 引擎把下载任务给下载器,下载器进行下载
- 下载器没办好任务会告诉引擎,引擎继续给调度器,办好任务了会让引擎把信息给Spiders
- Spiders看活干的怎样,数据好了就给管道,没好的继续给引擎
用作什么
- Scrapy只需要定制开发模块就可以爬虫了
- 如果没用Scrapy进行爬虫,需要进行 Urllib、requests、封装http头部信息类、多线程或协程、封装代理类,封装数据存储类、封装去重 等工作