scrapy爬虫怎么跳过没有反应的页面?

scrapy爬虫抓取某些页面的时候,页面没有反应,也不是404,也不知道有没有内容,反正就是用浏览器打开地址,什么有没有,一片空白,也不报错,一直就那样。这种页面怎么跳过?

阅读 10.5k
3 个回答

检查response.body有没有东西就ok

有的页面打开是空白,再刷一次又有内容,我写的一个中间件,
在setting里设置RETRY_ENABLED = True,RETRY_TIMES = 10可以重试10次

class BlankPageRetryMiddleware(RetryMiddleware):
    def __init__(self, *args, **kw):
        super(BlankPageRetryMiddleware, self).__init__(*args, **kw)
        self.length_threshold = 100
        
    def process_response(self, request, response, spider):
        if len(response.body) < self.length_threshold:
            log.msg("blank page: %s" % response.url, level=log.INFO)
            retries = request.meta.get('retry_times', 0) + 1
            log.msg("**********blank page: %s retries: %s" % (response.url, retries))
            reason = 'blank page %s' % response.url
            return self._retry(request, reason, spider) or response
        return response
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进