Requests / urllib3下载图像时重试警告

时间:2016-06-28 09:01:11

标签: python python-requests

我正在使用以下代码按顺序下载一些图像,但我收到了大量WARNING: Retrying条消息。值得注意的是图像网址每次都会导致这种情况发生变化,有时甚至不会发生。

session = requests.Session()
session.keep_alive = False
adapter = requests.adapters.HTTPAdapter(pool_connections=100, pool_maxsize=100, max_retries=3)
session.mount("http://", adapter)
session.mount("https://", adapter)

response = session.get(image_url, headers=headers, allow_redirects=True, timeout=20)

这导致警告

2016-06-28 07:16:47 [requests.packages.urllib3.connectionpool] WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None)) after connection broken by 'ReadTimeoutError("HTTPConnectionPool(host='s-media-cache-ak0.pinimg.com', port=80): Read timed out. (read timeout=20)",)': /564x/4d/75/78/4d7578cf80d146b9d2b597f8678c7b31.jpg

我该如何修复/压制这些?在我的日志中有很多重试警告是没有意义的。我已经检查了请求源代码,但我不想禁用所有警告:

log.warning("Retrying (%r) after connection "
            "broken by '%r': %s", retries, err, url)

2 个答案:

答案 0 :(得分:0)

只需停用 urllib3 警告:

import urllib3
urllib3.disable_warnings()

或者urllib3 docs提示您可以使用logging模块捕获警告:

logging.captureWarnings(True)

您也可以使用PYTHONWARNINGS

在代码之外执行此操作

答案 1 :(得分:0)

原来我试图禁用错误的东西。我刚喝过东西

import logging
logging.getLogger('requests.packages.urllib3.connectionpool').setLevel(logging.CRITICAL)