重定向中间件遇到url就触发,如何控制?

start_urls = ["http://xxx.com/xxx]
    
def parse(self, response):
      yield Request(url,headers=self.headers,callback=self.parse2)
      

其实我想在第二层触发自定义RedirectMiddleware,但是start_urls也会触发(进入这层url,不需要触发重定向),如何控制?

--------------------补充RedirectMiddleware------------------------------------

class RedirectMiddleware(object):

    def process_request(self, request, spider):
        print '111111111111111'
        print request.url
阅读 5.1k
1 个回答
#XX_spider.py


def parse(self, response):
        ...
      request.meta['enable_redirect'] = True
      yield request
      

#RedirectMiddleware.py
def process_request(self, request, spider):
    ...
    if request.meta.has_key('enable_redirect'):
        ...
    

Reference:
1.Scrapy1.0文档-下载中间件(downloadmiddleware)
2.Scrapy1.0文档-request and response

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进