ssl.SSLCertVerificationError и SSLError Соскоб трассировки в cmd, но не в jupyter - PullRequest
0 голосов
/ 01 июня 2019

Я использую скрипт Python уже более года без проблем.Несколько дней назад мой компьютер был перезагружен.Теперь в Python 3.x возникают проблемы с urllib3 и SSL-сертификатами из командной строки cmd

Эта трассировка не происходит в ноутбуке jupyter: сценарий там работает идеально, и не происходит, когда выполняется очистка URL-адресов с http вместоhttps.

Эти вопросы очень чужды мне.Сначала я проверяю SSL-сертификаты Python

In [1]: import ssl
In [2]: print(ssl.OPENSSL_VERSION)
OpenSSL 1.1.0j  20 Nov 2018

Затем я безуспешно пытался ответить из другого потока .

import warnings
from urllib3.exceptions import  InsecureRequestWarning
warnings.simplefilter('ignore',InsecureRequestWarning)

Аналогичная проблема обнаружена в другом тема , но ответы относятся к Mac.Я использую Windows 10.

Наконец, я попытался запустить код в Jupyter Notebook, и он работает как чудо.Нет следов.Существует трассировка только запуска Python из командной строки.

import urllib3
from bs4 import BeautifulSoup

hdr = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11'}

url = https://whatever
response = http.request('GET', url, headers=hdr)
site = response.data

Трассировки:

Traceback (most recent call last):

ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1056)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):

urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='www.website.com', port=443): Max retries exceeded with url: / (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1056)')))
...