一、Scrapy原理
工作原理:通过引擎统领其他成员协同工作。
在使用Scrapy的时候,不需要关心爬虫的每个流程,scrapy中的网络请求都是默认异步模式,请求和返回都会由引擎自动分配处理。如果某个请求出现异常,框架会做异常处理,跳过这个异常的请求,继续去执行后面的程序。
Scheduler(调度器)主要负责处理引擎发送过来的requests对象,把请求的url以有序的方式排列成队,等待引擎提取(类似gevent库的queue模块)。(Scrapy已实现)
Downloader(下载器)负责处理引擎发送过来的requests,进行网页爬取,并将返回的response交给引擎,对应爬虫流程中的【获取数据】。(Scrapy已实现)
Spiders(爬虫)负责创建requests对象和接受引擎发送过来的response,从中解析并提取出有用的数据,对应爬虫流程中【解析数据】和【提取数据】。
Item Pipeline(数据管道)负责存储和处理Spiders提取到的有用数据,对应爬虫流程中的【存储数据】。
二、Scrapy的用法
项目目标:爬取豆瓣Top250图书。
实现步骤:明确目标、分析过程、代码实现。
代码实现——创建项目
前提:安装Scrapy : pip install scrapy -i https://pypi.douban.com/simple
1、打开终端(win+R,输入cmd),进入想要保存项目的目录下(例如我保存项目的文件夹位置:D:\Code_WorkPlace\Python_WorkPlace\scrapy_project;先在命令行输入【d:】跳转到d盘,再输入【cd D:\Code_WorkPlace\Python_WorkPlace\scrapy_projec