Scrapy框架简介
前言
Scrapy 框架是一个用 python 实现的为了爬取网站数据、提取数据的应用框架,使用 Twisted 异步网络库来处理网络通讯,可以高效的完成数据爬取。本文主要介绍 Scrapy 框架的构成与工作原理。
正文
1、Scrapy安装
Windows安装:-m -pip install Scrapy
或使用 PyCharm 可视化界面安装。
2、Scrapy框架构成
- 爬虫文件Spider:负责数据的解析提取
- 调度器Scheduler:负责维护请求队列
- 下载器Downloader:负责发请求获取响应对象
- 实体管道Item Pipeline:负责处理数据,数据入库
- 引擎Engine:整个框架的核心,总指挥
3、Scrapy框架工作流程
- 当整个爬虫项目启动时,由引擎来找到爬虫文件,索要第一批要抓取的url地址;
- 引擎拿到url地址后,将url地址交给调度器入队列;
- 调度器将url地址入队列后,再出队列,这个过程在调度器中生成了一个请求指纹;
- url地址出队列后,交给引擎;再由引擎交给下载器,下载器只负责发请求获取响应response,拿到响应对象;
- 下载器将从站点拿到的响应对象交给引擎,引擎拿到响应;
- 引擎将拿到的响应对象给爬虫文件,解析提取;
- 爬虫文件解析提取数据后,产生两种数据:一是需要继续跟进的url地址,二是解析后需要存储的数据;
- 提取出来的数据交给项目管道做数据库入库处理;继续跟进的url地址由引擎交给调度器做入队列操作;
- 如此循环。
4、Scrapy框架的两个中间件
中间件相当于过滤器,夹在不同部分之间截获数据流,并进行特殊的加工处理。
- 下载器中间件Downloader Middlewares:请求对象->引擎->下载器,包装请求(随机代理等)
- 蜘蛛中间件Spider Middlewares:响应对象->引擎->爬虫文件,可修改响应对象属性