一, 介绍: scrapy是一个专业的,高效的爬虫框架, 它使用专业的Twisted包高效的处理网络通信, 使用lxml(专业的XML处理包),cssselect 高效的提取HTML页面的有效信息, 同时它也提供了有效的线程管理, 爬虫框架 是实现爬虫功能的一个软件结构和功能组件集合, 爬虫框架是一个半成品, 能够帮助用户实现专业的网络爬虫
二, 安装: pipenv install scrapy
三,结构: 5+2 结构
5个模块分别是: engine模块 + spiders模块(框架入口)+ scheduler模块+ downloader模块+ item pipelines(框架出口)模块
2个中间件分别是: spiderMiddleware 和 downloaderMiddleware
3条数据流路径:
1️⃣:spiders模块经过engine模块到达scheduler模块(request请求)
2️⃣: scheduler模块通过engine模块 到达downloader模块, 将数据返回给spider模块
3️⃣spider模块通过engine模块分别达到item pipelines模块 和 scheduler模块
三, engine模块功能:(整个框架核心, 控制所有模块的数据流, 根据条件触发事件)
1)downloader模块:(根据请求下载网页)
![](/qrcode.jpg)
2)scheduler: 负责调度
3)item pipelines 模块: 以流水线的方式处理spider产生的爬取项,由一组操作顺序组成,类似流水线, 每个操作是一个item Piplines类型
4) spider: 解析Downloader返回的响应(Response), 产生爬取项 , 产生额外的爬取请求(Request)
四,Downloader Middleware:
目的: 实施Engine,scheduler和downloader之间进行用户可配置的控制
功能: 修改,丢弃,新增请求或响应 用户可以编辑可配置代码