Scrapy库的介绍和结构

1.安装:pip install scrapy
测试是否安装成功:scrapy -h
Scrapy库的介绍和结构_第1张图片
2.scrapy:不是函数库,是一个爬虫框架
爬虫框架是实现爬虫功能的一个软件结构和功能组件的组合,爬虫框架是一个半成品,能够帮助用户实现专业网络爬虫
3.scrapy共七个部分,又称‘5+2’结构,其中有五个部分是框架的主体部分,有两个是中间件,这五个部分分别是:
Scrapy库的介绍和结构_第2张图片
五个模块形成的结构叫scrapy爬虫框架,在这五个模块之间,数据包括用户提交的网络爬虫请求和从网上获取的相关内容,在这些结构之间进行流动,形成了数据流
4.Scrapy框架的三条主要数据流:
(1)SPIDERS----ENGINE----SCHEDULER
其中ENGINE从SPIDERS获取爬取网络的请求,这种情况叫Requests,这个请求到ENGINE之后,ENGINE把这个请求转发给SCHEDULER模块,负责对爬去请求进行调度

(2)SCHEDULER----ENGINE----DOWNLOADER----ENDINE----SPIDERS
ENGINE模块从SCHEDULER模块获得下一个要怕爬取的网络请求,ENGINE获得请求后通过中间件发送给DOWNLOADER模块,DOWNLOADER模块拿到请求后真实的连接互联网并且爬取相关的网页,爬取到网页后,DOWNLOADER模块将爬取的内容形成一个对象,即响应(Response),将所有的内容封装成一个Response之后,将这个响应再通过中间件交给ENGINE,最终在发送给SPIDERS

(3)SPIDERS----ENGINE–ITEM PIPELINES/SCHEDULER
SPIDERS处理从DOWNLOADER获得的响应,也就是从网络中爬取的相关内容,处理之后昌盛两个数据类型:
一个数据类型叫爬取项(ITEMS),另一个数据类型是新的爬取请求,(我们从网上获得一个网页之后,若这个网页中有其他的链接我们也感兴趣,就可以在SPIDERS中增加相关的功能,对新的链接进行爬取)
SPIDERS生成这两个数据类型之后,将其中的ITEMS发送给 ITEM PIPELINES,将其中的REQUESTS发送给SCHEDULER进行调度,从而为后续的数据处理及再次启动的新的爬虫请求提供了新的数据来源

在这个框架中,入口是SPIDERS,出口是ITEM PIPELINES,这两个需要用户自己编写配置,而ENGINE,DOWNLOADER,SCHEDULER都是已有功能的实现,SPIDERS模块向框架提供要访问的url链接,同时要解析从页面上获得的内容,ITEM PIPELINES负责对提取的信息进行后处理

在这个框架中用户仅对SPIDERS模块和ITEM PIPELINES模块进行编写,即用户在Scrapy框架下经过简单的配置就可以实现运行的功能,最终实现爬虫需求

你可能感兴趣的:(Scrapy库的介绍和结构)