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

    scrapy中间件

     1 class SpiderMiddleware(object):
     2 
     3     def process_spider_input(self,response, spider):
     4         """
     5         下载完成,执行,然后交给parse处理
     6         :param response: 
     7         :param spider: 
     8         :return: 
     9         """
    10         pass
    11 
    12     def process_spider_output(self,response, result, spider):
    13         """
    14         spider处理完成,返回时调用
    15         :param response:
    16         :param result:
    17         :param spider:
    18         :return: 必须返回包含 Request 或 Item 对象的可迭代对象(iterable)
    19         """
    20         return result
    21 
    22     def process_spider_exception(self,response, exception, spider):
    23         """
    24         异常调用
    25         :param response:
    26         :param exception:
    27         :param spider:
    28         :return: None,继续交给后续中间件处理异常;含 Response 或 Item 的可迭代对象(iterable),交给调度器或pipeline
    29         """
    30         return None
    31 
    32 
    33     def process_start_requests(self,start_requests, spider):
    34         """
    35         爬虫启动时调用
    36         :param start_requests:
    37         :param spider:
    38         :return: 包含 Request 对象的可迭代对象
    39         """
    40         return start_requests
    爬虫中间件
     1 class DownMiddleware1(object):
     2     def process_request(self, request, spider):
     3         """
     4         请求需要被下载时,经过所有下载器中间件的process_request调用
     5         :param request: 
     6         :param spider: 
     7         :return:  
     8             None,继续后续中间件去下载;
     9             Response对象,停止process_request的执行,开始执行process_response
    10             Request对象,停止中间件的执行,将Request重新调度器
    11             raise IgnoreRequest异常,停止process_request的执行,开始执行process_exception
    12         """
    13         pass
    14 
    15 
    16 
    17     def process_response(self, request, response, spider):
    18         """
    19         spider处理完成,返回时调用
    20         :param response:
    21         :param result:
    22         :param spider:
    23         :return: 
    24             Response 对象:转交给其他中间件process_response
    25             Request 对象:停止中间件,request会被重新调度下载
    26             raise IgnoreRequest 异常:调用Request.errback
    27         """
    28         print('response1')
    29         return response
    30 
    31     def process_exception(self, request, exception, spider):
    32         """
    33         当下载处理器(download handler)或 process_request() (下载中间件)抛出异常
    34         :param response:
    35         :param exception:
    36         :param spider:
    37         :return: 
    38             None:继续交给后续中间件处理异常;
    39             Response对象:停止后续process_exception方法
    40             Request对象:停止中间件,request将会被重新调用下载
    41         """
    42         return None
    下载器中间件
  • 相关阅读:
    Google maps not working IE11
    谷歌地图插件
    杨辉三角python的最佳实现方式,牛的不能再牛了
    今日头条推荐算法原理全文详解
    项目启动大会要点
    学金融应该看的书籍
    【从0到1】经典语录
    appium学习链接记录
    Axure-计算输入字数
    如何提升个人专业能力
  • 原文地址:https://www.cnblogs.com/ganxiang/p/11028977.html
Copyright © 2011-2022 走看看