为了账号安全,请及时绑定邮箱和手机立即绑定

如何在多个scrapy爬虫中实现一个代理池?

如何在多个scrapy爬虫中实现一个代理池?

摇曳的蔷薇 2021-12-09 18:20:59
我必须在具有多个使用 scrapy 的爬虫的服务器中实现代理池。考虑到我已经有一个包含多个一直更新的代理的数据库,我将如何实现代理池。我不想直接在代码中添加代理,主要是因为很多代理死得非常快,而且一些爬虫需要很长时间才能完成。有没有办法使用中间件或不需要更改我得到的每个爬虫的东西来实现这一点?
查看完整描述

2 回答

?
森栏

TA贡献1810条经验 获得超5个赞

中间件



import requests

PROXY_POOL_URL = 'http://127.0.0.1:5555/random'

class RandomProxyMiddleware(object):


    def process_request(self, request, spider):

        proxy_ip = requests.get(PROXY_POOL_URL).text


        request.meta["proxy"] = 'http://' + proxy_ip    

和设置


DOWNLOADER_MIDDLEWARES = {

   'xxxxxxxxxxxxx.middlewares.RandomUserAgentMiddlware': 543,

}


查看完整回答
反对 回复 2021-12-09
?
慕容森

TA贡献1853条经验 获得超18个赞

是的,您可以使用下载器中间件来实现这样的代理处理。

在 Github 中搜索 'scrapy proxy'以找到一些处理代理配置的下载器中间件示例。


查看完整回答
反对 回复 2021-12-09
  • 2 回答
  • 0 关注
  • 244 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号