12爬虫:scrapy爬虫框架
scrapy工作流程
简单的说,scrapy是一个爬虫框架,属于项目的半成品,集成了各种功能且具有较强的通用性,其本身就具有协程功能。scrapy主要包含5大模块,分别为引擎(engine)、调度器(scheduler)、下载器(downloader)、爬虫(spider)、管道(pipeline)五大基本模块。各个模块的基本功能如下:
(1)引擎(engine):scrapy的核心模块,衔接其他所有模块,所有的数据流都要经过引擎。
(2)调度器(schedule):我们可以把调度器理解为一个队列,该队列中存放着一堆我们要发送的url。引擎从调度器中拿到相应的url然后提交给下载器实现数据请求。
(3)下载器(downloader):本质上是发送请求的模块,返回Request对象。
(4)爬虫(spider):保存有初始的url地址,将url封装成Request对象,通过引擎提交给调度器,此外所有的数据解析都在爬虫中,默认其中的parse方式是第一个数据解析方法。
(5)管道(pipeline):用于数据的持久化保存。
整个scrapy的工作流程如下,可以发现所有的数据流都经过引擎engine。
scrapy安装与项目创建
相对于windows系统的电脑来说,mac安装scrapy是非常简单的,直接pip install scrapy即可。对于使用windows系统的小伙伴,可以在B站中找相应的视频,跟着教程一步一步完成。个人比较推荐樵夫老师讲的内容,对应的链接为:【号称python爬虫最精髓的scarpy框架到底是个什么东西,手把手教学,小白也能学会scarpy,内容较多,建议插眼以后慢慢看-哔哩哔哩】 https://b23.tv/2I6V1Dh,希望能够帮助到大家。
scrapy安装完成后,接下来简要的说明一下如何创建项目。
(1)新建目录,用于保存scrapy项目文件方便后续的管理,我这里实在“网络爬虫”目录下新建“scrapy爬虫框架学习”目录。
(2)在“scrapy爬虫框架学习”目录上右键——>打开于——>终端
(3)在对应的终端中以此输入:
scrapy startproject 项目名称 | 创建一个scrapy爬虫项目 |
cd 项目名称 | 进入该项目目录下 |
scrapy genspider 爬虫名称 域名 | 创建爬虫 |
scrapy crawl 爬虫名字 | 运行爬虫 |
如上所示,我们创建了一个picture的scrapy项目,在该项目中创建了一个名称为imageDownload的spider,对应的域名为tpzj.com 。
域名的用处是保证后续所有的请求都在该域名下,不再该域名下的url不会被执行。