zoukankan      html  css  js  c++  java
  • scrapy中间件

    1 scrapy中间件的分类和作用

    1.1 scrapy中间件的分类

    根据scrapy运行流程中所在位置不同分为:

    1. 下载中间件
    2. 爬虫中间件
    1.2 scrapy中间的作用
    1. 主要功能是在爬虫运行过程中进行一些处理,如对非200响应的重试(重新构造Request对象yield给引擎)
    2. 也可以对header以及cookie进行更换和处理
    3. 其他根据业务需求实现响应的功能

    但在scrapy默认的情况下 两种中间件都在middlewares.py一个文件中

    爬虫中间件使用方法和下载中间件相同,常用下载中间件

    2 下载中间件的使用方法:

    接下来我们对腾讯招聘爬虫进行修改完善,通过下载中间件来学习如何使用中间件 编写一个Downloader Middlewares和我们编写一个pipeline一样,定义一个类,然后在setting中开启

    Downloader Middlewares默认的方法:

      • process_request(self, request, spider):
        1. 当每个request通过下载中间件时,该方法被调用。
        2. 返回None值:没有return也是返回None,该request对象传递给下载器,或通过引擎传递给其他权重低的process_request方法
        3. 返回Response对象:不再请求,把response返回给引擎
        4. 返回Request对象:把request对象通过引擎交给调度器,此时将不通过其他权重低的process_request方法
      • process_response(self, request, response, spider):
        1. 当下载器完成http请求,传递响应给引擎的时候调用
        2. 返回Resposne:通过引擎交给爬虫处理或交给权重更低的其他下载中间件的process_response方法
        3. 返回Request对象:通过引擎交给调取器继续请求,此时将不通过其他权重低的process_request方法
      • 在settings.py中配置开启中间件,权重值越小越优先执行
  • 相关阅读:
    RegExp实例
    Date类型之组件方法
    Date类型之继承方法
    数组常见方法下
    Math对象
    数组常见方法上
    CSS变量
    基本类型和引用类型
    Python习题集(十五)
    Python习题集(十四)
  • 原文地址:https://www.cnblogs.com/lab-zj/p/12166718.html
Copyright © 2011-2022 走看看