scrapy怎么设置返回码不是200换代理


scrapy需要设置返回码不是200换代理

知道在中间件设置,代码如下

class DownloadMiddleware():
    def process_response(self, request, response, spider):
        if response.status != 200:
            print 'error',request.meta['proxy']
            print response.url
            request.meta['proxy'] = scrapy_proxy()
            # file = open('badproxy','a')
            # file.write(request.meta['proxy']+'\n')
            # file.close()22
            # reason = response_status_message(response.status)
            # self._faillog(request, u'HTTPERROR', reason, spider)
            new_request = request.copy()
            return new_request
        else:
            return response
            

我的想法是当返回码不是200的时候,request.meta['proxy']修改。
返回request,但是这样并没有效果。

求各位说说解决思路


参考一下连接里面的中间件

https://gist.github.com/therg...



相关阅读:
为什么有的公司要求DBA禁止使用between?
Laravel 如何获取路由名称?
前后端分离中碰到跨域问题大家是怎么解决的?
阮一峰老师《ECMAScript 6入门》第一节中的疑问
定时器中this为什么会指向window
backbone排序问题,视图实时排序
vuex中的state值,在工具类模块中怎么获取?
怎样用yii2.0配合mongodb做后台的权限控制系统???
类方法里实现网络请求类单例的方法有些情况返回不了数据
mysql如何合并两张结构相同的数据表?
easyui1.5 datagrid中分页显示不正常,求教各位
API Gateway 或者 OpenAPI设计思想?
vue.js实现组件间的上移下移
新人小白问题之 什么时候需要用到form标签?什么时候不必用,用不用有什么区别?
Git出错 Fatal:multiple Stage Entriesfor Merged File
前端怎么实现关闭页面或浏览器后,重新打开页面或重启浏览器,可以继续原来的操作,比如重新打开后不需要重新调用后台的服务
flask 中的 template_rendered 函数
react map函数中点击事件失效
怎么检查一个checkbox是否存在?
为什么onmouseenter函数里面的i值为13?



快速导航

Copyright © 2016 phpStudy |