首页 > 代码库 > scrapy为不同网站设置不同的代理
scrapy为不同网站设置不同的代理
在公司项目中,有一些爬虫中需要用的国内代理,有一些需要用到国外代理,有一些不用代理
我测试了三个方案
方案一:
在settings.py中开启代理,然后在spider中重写DOWNLOADER_MIDDLEWARES,但重写无法生效
方案二:
让scrapy切换到不同的settings.py文件,这个手动切换是有效果的,但是我研究了半天不知道如果让程序自动切换,最后放弃
方案三:
在middlewares.py中直接写,通过request.url来判断并启用相应的代理
class ProxyMiddleware(object): def process_request(self, request, spider): url=request.url if ‘baidu.com‘ in url: request.meta[‘proxy‘] = ‘这里设置国内http代理‘ elif ‘facebook.com‘ in url: request.meta[‘proxy‘]=‘这里设置国外http代理‘ else: pass
最后是采用的这个方案
scrapy为不同网站设置不同的代理
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。