目录
1.scrapy是什么
scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架,可以应用在包括数据挖掘、信息处理或存储历史数据等一系列程序中
2.主要人物
引擎(engine):scrapy的核心,负责处理整个系统的数据流。组织核心人物,负责整体的协调工作,其他所有成员在其控制下协同工作
爬虫(spider):爬虫的核心,负责定义如何抓取数据以及如何解析数据
调度器(scheduler):对spider提交的工作进行调度,负责管理请求队列,决定了请求顺序
下载器(downloader):负责从网站下载网页内容
数据管道(pipeline):负责对爬取到的数据进行处理,例如验证数据、清洗数据、存储数据
中间件(middleware):负责对request对象和response对象进行处理
3.scrapy优点
- 高效稳定:采用异步IO的方式进行爬取,能够较快地抓取大量数据,并且具有较高的稳定性和可靠性
- 扩展性强:提供了丰富的插件和扩展机制,可以轻松实现各种自定义需求
- 数据处理方便:支持数据的自动化处理、存储和导出,可以方便地对抓取到的数据进行处理
- 文档齐全:提供完善的官方文档和教程,初学者也能快速上手
4. scrapy项目开发流程
创建项目:scrapy startproject mySpider
生成一个爬虫:scrapy genspider baidu baidu.com
提取数据:根据网站结构在spider中实现数据采集相关内容
保存数据:使用pipeline进行数据后续处理和保存
5.组织架构及工作流程
首先引擎向爬虫请求第一个url,爬虫将url提交给引擎,引擎将url地址交给调度器,调度器将url排序入队列,并将处理好的队列返回给引擎,引擎将有序的数据提交给下载器,下载器下载完成后将数据返回给引擎,引擎将接受的数据通过爬虫中间件发送给爬虫进行文件处理,爬虫处理后将获得item数据和url,并发送给引擎,引擎将item数据交给数据管道进行数据持久化处理,将url交给调度器继续入队列。重复操作,直到操作器中没有可操作的request,引擎关闭