我试图将sssl.SSlContext添加到urlopen方法,但不断收到错误:
TypeError: urlopen() got an unexpected keyword argument 'context'
我正在使用python 3和urllib。这有一个定义的上下文参数 - https://docs.python.org/2/library/urllib.html。所以我不明白它为什么会抛出这个错误。但无论哪种方式,这都是代码:
try:
# For Python 3.0 and later
from urllib.request import urlopen, Request
except ImportError:
# Fall back to Python 2's urllib2
from urllib2 import urlopen, Request
request = Request(url, content, headers)
request.get_method = lambda: method
if sys.version_info[0] == 2 and sys.version_info[1] < 8:
result = urlopen(request)
else:
gcontext = ssl.SSLContext(ssl.PROTOCOL_TLSv1)
result = urlopen(request, context=gcontext)
有人可以解释我做错了吗?
答案 0 :(得分:3)
根据urllib.request.urlopen
documentation:
版本3.4.3中已更改:已添加上下文。
参数context
将在Python 3.4.3中添加。您需要退回到较低版本。
在Python 2.x中,它在Python 2.7.9中添加了。 (urllib.urlopen
,urllib2.urlopen
)
答案 1 :(得分:2)
您正在查看错误的文档。 https://docs.python.org/3.0/library/urllib.request.html是你想要的。您使用的是Python 2.X文档。