一、什么是scrapy框架?
先来看字面意思:框架。
一般来说,框架来源于建筑学,往往指建筑主体已经搭建好了,剩下的只是细枝末节的一些东西,比如安个门、砌一堵墙、开个窗户等等,不需要对框架本身做出大的改动。
盖房子的流程:打地基 --> 梁板柱 ->> 砌墙 ->>外饰
同样的,大家想一下,我们在编写爬虫的时候,是不是经常做一些重复性的东西?
比如:发送网络请求【反反爬虫机制(设置请求头等)】 ->> 数据解析 ->> 数据存储等。
所以scrapy框架就帮助我们搭建好了整个流程,最后我们只需要对这个框架做一些细小的改动即可。
二、为什么使用scrapy框架
(1)scrapy框架最流行
(2)已经帮助我们搭建了整个流程,我们不需要做一些重复性的工作
(3)封装了大量基础性的东西,比如发送请求等,我们写爬虫可以变的更加的高效(爬取效率和开发效率)
(4)上了量级的爬虫,都会使用scrapy框架
三、如何使用scrapy框架
实战中应用!实战中应用!!实战中应用!!!
Scrapy Engine(引擎)
:Scrapy
框架的核心部分。负责在Spider
和ItemPipeline
、Downloader
、Scheduler
中间通信、传递数据等。Spider(爬虫)
:发送需要爬取的链接给引擎,最后引擎把其他模块请求回来的数据再发送给爬虫,爬虫就去解析想要的数据。这个部分是我们开发者自己写的,因为要爬取哪些链接,页面中的哪些数据是我们需要的,都是由程序员自己决定。Scheduler(调度器)
:负责接收引擎发送过来的请求,并按照一定的方式进行排列和整理,负责调度请求的顺序等。Downloader(下载器)
:负责接收引擎传过来的下载请求,然后去网络上下载对应的数据再交还给引擎。Item Pipeline(管道)
:负责将Spider(爬虫)
传递过来的数据进行保存。具体保存在哪里,应该看开发者自己的需求。Downloader Middlewares(下载中间件)
:可以扩展下载器和引擎之间通信功能的中间件。Spider Middlewares(Spider中间件)
:可以扩展引擎和爬虫之间通信功能的中间件。