Python 3 urllib ignore SSL certificate verification Python 3 urllib ignore SSL certificate verification python python

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.