Python 3 urllib ignore SSL certificate verification
The accepted answer just gave advise to use python 3.5+, instead of direct answer. It causes confusion.
For someone looking for a direct answer, here it is:
import sslimport urllib.requestctx = ssl.create_default_context()ctx.check_hostname = Falsectx.verify_mode = ssl.CERT_NONEwith urllib.request.urlopen(url_string, context=ctx) as f: f.read(300)
Alternatively, if you use requests
library, it has much better API:
import requestswith open(file_name, 'wb') as f: resp = requests.get(url_string, verify=False) f.write(resp.content)
The answer is copied from this post (thanks @falsetru): How do I disable the ssl check in python 3.x?
These two questions should be merged.
Python 3.0 to 3.3 does not have context parameter, It was added in Python 3.4. So, you can update your Python version to 3.5 to use context.