说明:了解爬虫的可能都会知道,在爬虫里,requests入门简单,即使是没有基础的小白,学个几天也能简单的去请求网站,但是scrapy就相对来说就比较难,本片文章能是列举几个简单的例子去理解的scrapy工作的原理,理解了scrapy工作的原理之后,学起来就会简单很多 适用:本篇文章适合有一点的爬虫基础但又是刚刚接触或者想要学习scrapy的同学 scrapy框架:
scrapy框架的结构:
5表示: 1. spiders(蜘蛛) 2. engine(引擎) 3. downloader(下载器) 4. scheduler(调度器) 5. item pipeline(项目管道) 2表示: 1. downloder middlewares(下载中间件) 2. spider middlewares(蜘蛛中间件) [图片上传失败...(image-946ae8-1545285941079)] 接下来我们就列举几个列子来方便的理解scrapy原理:先说一下爬虫,对于一个爬虫,整体来看,分为三个部分:
设定一: 初始url:1个 是否解析:否 是否存储数据:否 (1)spider将初始url经过engine传递给scheduler,形成调度队列(1个requests) (2)scheduler将requests经过engine调度给downloader进行数据下载,形成原始数据 设定二: 初始url:1个 是否解析:是 是否存储数据:否 (1)spider将初始url经过engine传递给scheduler,形成调度队列(1个requests) (2)scheduler将requests经过engine调度给downloader进行数据下载,形成原始数据 (3)将原始数据经过engine传递给spider进行解析 设定三: 初始url:1个 是否解析:是 是否存储数据:是 (1)spider将初始url经过engine传递给scheduler,形成调度队列(多个requests) (2)scheduler将第一个requests经过engine调度给downloader进行数据下载,形成原始数据 (3)将原始数据经过engine传递给spider进行解析 (4)将解析后的数据经过engine传给item pipeline进行数据存储 设定四: 初始url:多个 是否解析:是 是否存储数据:是 (1)spider将初始url经过engine传递给scheduler,形成调度队列(多个requests) (2)scheduler将第一个requests经过engine调度给downloader进行数据下载,形成原始数据 (3)将原始数据经过engine传递给spider进行解析 (4)将解析后的数据经过engine传给item pipeline进行数据存储 (5)scheduler将下一个requests经过engine调度给downloader进行数据下载,形成原始数据......#重复(2)到(4)步,直到scheduler中没有更多的requests |
|