ssl.CertificateError: имя хоста «example.com» не соответствует ни одному из «exampleserver.com»? - PullRequest
0 голосов
/ 23 апреля 2020

при попытке открыть сайт с библиотекой urllib я получаю сообщение об ошибке. Я не понимаю, почему эта ошибка происходит? В настоящее время я использую python 3.6 версию. Это проблема с версией?

url = 'https://example.com'
html = urllib.request.urlopen(url).read().decode('utf-8')
text = get_text(html)
data = text.split()
print(data)

Ответы [ 2 ]

3 голосов
/ 23 апреля 2020

Эта ошибка возникает, когда общее имя вашего сертификата SSL / TLS не соответствует имени домена вашего сайта. Попробуйте изменить доменное имя вашего сайта на exampleServer.Com и посмотрите, работает ли оно. В противном случае вам придется написать собственный лог c, чтобы игнорировать ошибку несоответствия имени.

0 голосов
/ 23 апреля 2020

Я решил это следующим кодом:

необходимо импортировать библиотеку ssl

import ssl

нужно добавить этот код перед загрузкой url

ssl.match_hostname = лямбда-сертификат, имя хоста: True

Пример:

import ssl

ssl.match_hostname = lambda cert, hostname: True
url = 'https://example.com'
html = urllib.request.urlopen(url).read().decode('utf-8')
text = get_text(html)
data = text.split()
print(data)
...