关于Scrapy框架:

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

Scrapy架构图:

流程图:

ENGINE(引擎):让框架进行工作,框架的核心

SPIDERS:自己编写的爬虫

SCHEDULER(调度器):负责接收引擎发送过来的请求,并按照一定的方式进行排列和整理,负责调度请求的顺序等。

DOWNLOADER(下载器):负责接收引擎传过来的下载请求,然后去网络上下载对应的数据再交还给引擎。

ITEM PIPELINES(管道):用于处理爬取的数据,爬下来应该怎么存储,存储到哪里等待

MIDDLEWARE(中间件):比如在请求到下载器之前进行一些操作,比如说设置UA,代理IP

Scrapy工作流程:

  1. 先从爬虫处发送一个请求
  2. 请求发送给调度器
  3. 调度器收到请求之后,处理成一个request对象,放入队列中,传给引擎
  4. 引擎不断从调度器中拿请求,传给下载器
  5. 下载器把数据下载下来返回给引擎
  6. 引擎拿到之后把数据返回给爬虫
  7. 爬虫对数据进行分析,剔除不需要的数据,再把数据给引擎
  8. 引擎拿到数据之后传给管道
  9. 管道负责对数据进行存储