如何解决发生错误429或302时,调用存在于中间件中的代理中间件
我正在使用从我的给定api密钥获取代理的自定义代理中间件,我的代码如下
class CustomProxyMiddleware(object):
def process_request(self,request,spider):
# Set the location of the proxy
request.meta['proxy'] = "my api key"
问题是这样的,我认为我的搜寻器启动时就会调用此中间件,并且在500次搜索后,由于IP地址不变,我的蜘蛛开始出现错误429302,我正在寻找解决方案,当我得到这种类型的错误,它重新运行了这个中间件,所以我可以获得新的IP地址 更新: 实际上,我发现scrapy获得了9个不同的ip,之后它开始使用urllib在python文件中重复最新的ip地址,而从同一个api密钥进行10次搜索后,我从api密钥中获得了新的ip地址(这意味着在使用时一切正常urllib在“ .py”文件中,但是我却遇到了麻烦
解决方法
您可以添加try-except block
来捕获特定的429/302错误。在except(e)
块中,您可以重新运行请求以获取新的IP地址。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。