账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    scrapy的一些问题和疑惑
    25
    0

    我的代理中间件:settings已设置为544,默认添加为None

    class IpProxyMiddleware(object):
        def __init__(self, ip=''):
            self.ip = ip
    
        def process_request(self, request, spider):
            self.ip = requests.get('http://localhost:5555/random').text
            logging.info('当前使用代理IP为:' + self.ip)
            request.meta['proxy'] = 'http://' + self.ip
    • 疑惑:每次使用Request指定一个url和回调函数,都会执行process_request方法吗?然后调用一次API获取本地的代理Ip?doc是这样说的
    当每个request通过下载中间件时,该方法被调用
    • 问题:如何设置回调的解析函数中,当解析非200返回码,重新切换代理IP?使用如下代码是否有问题?我使用了,还是无效。不知从何检查。
            if response.status != 200:
                logging.error('--------IP has be baned!Retry again~ --------')
                yield Request(url=response.url,meta={'change_proxy': True}, callback=self.followees_parse)
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部