默认情况下,Requests python库将日志消息写入控制台,如下所示:
Starting new HTTP connection (1): example.com
http://example.com:80 "GET / HTTP/1.1" 200 606
我通常对这些消息不感兴趣,并希望禁用它们。什么是沉默这些消息或减少请求的冗长的最好方法?
默认情况下,Requests python库将日志消息写入控制台,如下所示:
Starting new HTTP connection (1): example.com
http://example.com:80 "GET / HTTP/1.1" 200 606
我通常对这些消息不感兴趣,并希望禁用它们。什么是沉默这些消息或减少请求的冗长的最好方法?
当前回答
简单:只需在导入请求后添加requests.packages.urllib3.disable_warnings()
其他回答
对于任何使用logging.config.dictConfig的人来说,你可以像这样修改字典中的请求库日志级别:
'loggers': {
'': {
'handlers': ['file'],
'level': level,
'propagate': False
},
'requests.packages.urllib3': {
'handlers': ['file'],
'level': logging.WARNING
}
}
简单:只需在导入请求后添加requests.packages.urllib3.disable_warnings()
在我的情况下,什么帮助了我(python 3.7)
import http.client as http_client
http_client.HTTPConnection.debuglevel = 0
如果您有配置文件,可以对其进行配置。
在记录器部分添加urllib3:
[loggers]
keys = root, urllib3
添加logger_urllib3 section:
[logger_urllib3]
level = WARNING
handlers =
qualname = requests.packages.urllib3.connectionpool
我不确定之前的方法是否已经停止工作,但无论如何,这里有另一种消除警告的方法:
PYTHONWARNINGS="ignore:Unverified HTTPS request" ./do-insecure-request.py
基本上,就是在脚本执行的上下文中添加一个环境变量。
来自文档:https://urllib3.readthedocs.org/en/latest/security.html#disabling-warnings