一、使用场景
在需要爬取的数据量极大的情况下,建议使用scrapy框架。性能好。
二、scrapy工作原理
engine | 引擎,类似于一个中间件,负责控制数据流在系统中的所有组件之间流动,可以理解为“传话者” |
spider | 爬虫,负责解析response和提取Item |
downloader | 下载器,负责下载网页数据给引擎 |
scheduler | 调度器,负责将url入队列,默认去掉重复的url |
item pipelines | 管道,负责处理被spider提取出来的Item数据 |
1、从spider中获取到初始url给引擎,告诉引擎帮我给调度器;
2、引擎将初始url给调度器,调度器安排入队列;
3、调度器告诉引擎已经安排好,并把url给引擎,告诉引擎,给下载器进行下载;
4、引擎将url给下载器,下载器下载页面源码;
5、下载器告诉引擎已经下载好了,并把页面源码response给到引擎;
6、引擎拿着response给到spider,spider解析数据、提取数据;
7、spider将提取到的数据给到引擎,告诉引擎,帮我把新的url给到调度器入队列,把信息给到Item Pipelines进行保存;
8、Item Pipelines将提取到的数据保存,保存好后告诉引擎,可以进行下一个url的提取了;
9、循环3-8步,直到调度器中没有url,关闭网站(若url下载失败了,会返回重新下载)。
一、创建项目
创建一个爬虫项目test_spider。cmd,cd到将要存放项目的目录中。
scrapy startproject test_spider