«

scrapy爬虫框架

时间:2023-2-28 23:46     作者:wen     分类: Python


一、scrapy的概念

Scrapy是一个python编写的开源网络爬虫框架。它是一个被设计用于爬取网络数据、提取结构性数据的框架、

二、scrapy框架的作用

少量的代码,就能够快速的抓取

三、scrapy的工作流程

  1. 回顾之前的爬虫流程
    捕获

  2. 上面的流程可以改写为
    捕获1

  3. scrapy的流程图
    捕获2.png

其流程可以描述如下:

  1. 爬虫中起始的url构造成request对象->爬虫中间件->引擎->调度器
  2. 调度器把request->引擎->下载中间件->下载器
  3. 下载器发送请求,获取response响应->下载中间件->引擎->爬虫中间件->爬虫
  4. 爬虫提取URL地址,组装成request对象->爬虫中间件->引擎->调度器,重复步骤2
  5. 爬虫提取数据->引擎->管道处理和保存数据

注意:

  1. scrapy的三个内置对象

    • request请求对象:由url method post_data headers等构成
    • response响应对象:由url body status headers等构成
    • item数据对象:本质是个字典
  2. scrapy中每个模块的具体作用

crap Engine(引擎) 总指挥:负责数据和信号在不同模块间的传递 scrapy已经实现
Scheduler(调度器) 一个队列,存放引擎发送过来的request请求 scrapy已经实现
Downloader(下载器) 下载把引擎发过来的requests请求,并返回给引擎 scrapy已经实现
Spider(爬虫) 处理引擎发来response,提取数据,提取URL,并交给引擎 需要手写
Item PipeLine(管道) 处理引擎传过来的数据,比如存储 需要手写
Downloader Middlewares(下载中间件) 可以自定义的下载扩展,比如设置代理 一般不用手写
Spider Middlewares(中间件) 可以自定义requests请求和进行response过滤 一般不用手写

注意:
爬虫中间件和下载器中间件只是运行逻辑的位置不同,作用是重复的:如替换UA等

标签: 爬虫