Scrapy是用纯Python实现一个为了爬取网站数据、提取结构性数据而编写的应用框架,用途非常广泛,它的基本模块及流程如下:
它的基本模块有引擎、spiders(我们自己写的爬虫,数据的请求和解析就在这里完成)、调度器(当爬取多个url的时候调度这些url的爬取顺序)、下载器、管道(存储爬取到的数据)。
爬取流程如下:
1、requests:从spider发送请求
2、请求传到调度器
3、调度器收到请求以后将url生成requests对象存储到队列中,并不断地传给引擎。
4、引擎将请求扔给下载器
5、下载器拿到请求以后把数据下载下来返回给引擎
6、引擎将数据返回给spider,让它做解析
7、spider将解析好的数据给引擎
8、引擎将最终的数据扔给管道进行存储
中间件的作用:在下载器执行之前进行一些相关的操作,比如设置一些代理ip,请求头等。