python爬虫经常使用之Scrapy 中间件

1、概述

  1.中间件的做用

          在scrapy运行的整个过程当中,对scrapy框架运行的某些步骤作一些适配本身项目的动做.框架

     例如scrapy内置的HttpErrorMiddleware,能够在http请求出错时作一些处理.scrapy

       2.中间件的使用方法

          配置settings.py.详见scrapy文档 https://doc.scrapy.orgide

 

2、中间件的分类

  scrapy的中间件理论上有三种(Schduler Middleware,Spider Middleware,Downloader Middleware),在应用上通常有如下两种函数

       1.爬虫中间件Spider Middleware

         主要功能是在爬虫运行过程当中进行一些处理.spa

  2.下载器中间件Downloader Middleware

         主要功能在请求到网页后,页面被下载时进行一些处理.中间件

 

3、使用

      1.Spider Middleware有如下几个函数被管理:

       - process_spider_input 接收一个response对象并处理,对象

         位置是Downloader-->process_spider_input-->Spiders(Downloader和Spiders是scrapy官方结构图中的组件)文档

       - process_spider_exception spider出现的异常时被调用input

       - process_spider_output 当Spider处理response返回result时,该方法被调用requests

       - process_start_requests 当spider发出请求时,被调用

    位置是Spiders-->process_start_requests-->Scrapy Engine(Scrapy Engine是scrapy官方结构图中的组件)         

   2.Downloader Middleware有如下几个函数被管理

   - process_request  request经过下载中间件时,该方法被调用

   - process_response 下载结果通过中间件时被此方法处理

   - process_exception 下载过程当中出现异常时被调用

      编写中间件时,须要思考要实现的功能最适合在那个过程处理,就编写哪一个方法.

      中间件能够用来处理请求,处理结果或者结合信号协调一些方法的使用等.也能够在原有的爬虫上添加适应项目的其余功能,这一点在扩展中编写也能够达到目的,实际上扩展更加去耦合化,推荐使用扩展.

相关文章
相关标签/搜索