1,简要介绍scrapy框架
scrapy是一个快速、高层次的基于python的web框架,用于抓取web站点并从页面中提取结构化的数据。scrpy使用了Twisted异步网络来处理网络通讯。
注:Twisted是用来创建具有可扩展性、跨平台的网络服务器和客户端的引擎
2.为什么使用scrapy框架?scrapy框架有哪些优点?
它更容易构建大规模的抓取项目
它异步处理请求,速度非常快
它可以使用自动调节机制自动调整爬行速度
3.scrapy框架有哪几个组件/模块?简单说一下工作流程。
Scrapy Engine:这是引擎,负责Spiders
scheduler(调度器):它负责接受引擎发送过来的requests请求,并按照一定方式进行整理排列,入队、并等待scrapy引擎来请求时,交给引擎。
downloader(下载器)负责下载scrapy
engine(引擎)发送的所有requests请求,并将其获取到的response交还给scrapy engine(引擎),由引擎交给spiders来处理。
spiders:他负责处理所有responses,从中分析提取数据,获取item字段需要的数据,并将需要跟进的url提交给引擎,再次进入scheduler(调度器),
item pipeline:它负责处理spiders中获取到的item,并进行处理,比如去重,持久化存储(存数据库,写入文件,总之就是保存数据用)
downloader middlewares(下载中间件):你可以当作是一个可以自定义扩展下载功能的组件
spider middlewares(spider中间件):你可以理解为是一个可以自定扩展和操作引擎和spiders中间“通信”功能的组件(比如进入spiders的responses以及从spiders出去的requests)
图片说明如下: