关于Scrapy框架:
写一个爬虫,做的事情太多,比如:发送网络请求,数据分析,数据存储,反反爬虫机制(更换代理IP,UA,字体反爬等等),异步请求等等。这些工作如果全部从0开始的话比较浪费时间,因此Scrapy把一些基础的东西全部封装好了,在它上面写爬虫会更加高效
Scrapy架构图:
流程图:

ENGINE(引擎):让框架进行工作,框架的核心
SPIDERS:自己编写的爬虫
SCHEDULER(调度器):负责接收引擎发送过来的请求,并按照一定的方式进行排列和整理,负责调度请求的顺序等。
DOWNLOADER(下载器):负责接收引擎传过来的下载请求,然后去网络上下载对应的数据再交还给引擎。
ITEM PIPELINES(管道):用于处理爬取的数据,爬下来应该怎么存储,存储到哪里等待
MIDDLEWARE(中间件):比如在请求到下载器之前进行一些操作,比如说设置UA,代理IP
Scrapy工作流程:
- 先从爬虫处发送一个请求
- 请求发送给调度器
- 调度器收到请求之后,处理成一个request对象,放入队列中,传给引擎
- 引擎不断从调度器中拿请求,传给下载器
- 下载器把数据下载下来返回给引擎
- 引擎拿到之后把数据返回给爬虫
- 爬虫对数据进行分析,剔除不需要的数据,再把数据给引擎
- 引擎拿到数据之后传给管道
- 管道负责对数据进行存储