scrapy是一个高级的python爬虫框架,是一个为了爬取网站数据,提取结构性数据而编写的应用框架。scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。
一、整体架构
旧版本
新版本
Scrapy Engine:引擎,负责Spiders、ItemPipeline、Downloader、Scheduler中间的通讯、信号、数据传递等
Scheduler:调度器,负责接受引擎发送过来的requests请求(采用队列的方式接收),并按照一定的方式进行整理排列、入队
Downloader:下载器,负责下载ScrapyEngine引擎发送过来的所有requests请求,并将其获取到的Responses交给ScrapyEngine引擎,由引擎交给Spiders处理
Spiders:爬虫,负责处理所有的Responses,从中提取数据,获取Item字段需要的数据,并将需要跟进的URL提交给引擎,再次进入Scheduler调度
Item Pipeline:项目管道,负责处理Spiders中获取到的Item,并进行处理
Downloader Middlewares:下载中间件,自定义扩展下载功能的组件
Spider Middlewares:爬虫中间件,自定义扩展引擎和spider中间通信的功能组件
Scheduler Middlewares:调度中间件,自定义扩展引擎和调度之间的请求和响应
scrapy运行流程大致如下:
1、引擎从调度器中取出一个链接(URL)用于接下来的抓取
2、引擎把URL封装成一个请求(Request)传给下载器
3、下载器把资源下载下来,并封装应答包(Response)
4、爬虫解析Response
5、解析出Item,则交给Item Pipeline进行下一步处理
6、解析出URL,则把URL交给调度器等待抓取
二、配置文件说明
scrapy.cfg 项目的配置信息,主要为scrapy命令行工具提供一个基础的配置信息
items.py 设置数据存储模型,用于结构化数据
pipelines 数据处理行为
settings.py 配置文件(爬虫相关的配置信息)
spiders 爬虫目录
三、scrapy常用命令
领取专属 10元无门槛券
私享最新 技术干货