How to set different scrapy-settings for different spiders?

前端 未结 5 1662
逝去的感伤
逝去的感伤 2020-12-05 14:48

I want to enable some http-proxy for some spiders, and disable them for other spiders.

Can I do something like this?

# settings.py
proxy_spiders = [         


        
5条回答
  •  慢半拍i
    慢半拍i (楼主)
    2020-12-05 15:19

    You can define your own proxy middleware, something straightforward like this:

    from scrapy.contrib.downloadermiddleware import HttpProxyMiddleware
    
    class ConditionalProxyMiddleware(HttpProxyMiddleware):
        def process_request(self, request, spider):
            if getattr(spider, 'use_proxy', None):
                return super(ConditionalProxyMiddleware, self).process_request(request, spider)
    

    Then define the attribute use_proxy = True in the spiders that you want to have the proxy enabled. Don't forget to disable the default proxy middleware and enable your modified one.

提交回复
热议问题