scrapy介绍
1、scrapy框架结构:
- Scrapy Engine(引擎): 负责Spider、ItemPipeline、Downloader、Scheduler中间的通讯,信号、数据传递等。
- Scheduler(调度器): 它负责接受引擎发送过来的Request请求,并按照一定的方式进行整理排列,入队,当引擎需要时,交还给引擎。
- Downloader(下载器):负责下载Scrapy Engine(引擎)发送的所有Requests请求,并将其获取到的Responses交还给Scrapy Engine(引擎),由引擎交给Spider来处理,
- Spider(爬虫):它负责处理所有Responses,从中分析提取数据,获取Item字段需要的数据,并将需要跟进的URL提交给引擎,再次进入Scheduler(调度器),
- Item Pipeline(管道):它负责处理Spider中获取到的Item,并进行进行后期处理(详细分析、过滤、存储等)的地方.
- Downloader Middlewares(下载中间件):可以自定义扩展下载功能的组件(代理、cokies等)。
- Spider Middlewares(Spider中间件):可以自定扩展和操作引擎和Spider中间通信的功能组件(比如进入Spider的Responses;和从Spider出去的Requests)
2、创建爬虫项目 :
- scrapy startproject 爬虫项目名称
- 创建聚焦爬虫文件 :scrapy genspider 爬虫名称 要爬取的域名
- 创建通用爬虫文件: scrapy genspider -t crawl 爬虫文件 域名
3、流程
- (1)spider爬虫拿url发起request请求,经过引擎到Scheduler(调度器)
- (2) 调度器将请求整理,需要的时候交给引擎
- (3)引擎拿到需要执行的任务经过Downloader Middlewares(下载中间件)
将request请求交给Downloader(下载器)发送请求,拿到response响应结果 - (4)下载器将response结果返回给引擎,引擎经过Spider Middlewares(Spider中间件)
将结果给spiders处理