Получение сертификата [SSL: CERTIFICATE_VERIFY_FAILED] не удалось (_ssl.c: 590) проверить ошибку при попытке прочитать URL через FancyURLopener - PullRequest
0 голосов
/ 12 октября 2018

Я пытаюсь выполнить приведенный ниже код (чтение содержимого из HTML) с помощью FancyURLopener.Код работал нормально последние 2 месяца или около того, но теперь он начал выдавать ошибку: IOError: [Ошибка сокета Errno] [SSL: CERTIFICATE_VERIFY_FAILED] проверка сертификата не удалась (_ssl.c: 590)

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

из urllib import urlopen

из urllib import FancyURLopener

из bs4 import BeautifulSoup

запросы на импорт

doc_name = "XYZ"

class MyOpener (FancyURLopener):

        version = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11'

mopen = MyOpener ()

def extract_count_from_url (url,tag_name, tag_type, html_tag):

      html = mopen.open(url).read() 
      soup = BeautifulSoup(html, "html.parser")

Я искал его в stackoverflow и в Google.Ответы, которые я получаю, в основном использовать библиотеки urllib2 / urllib и пользовательские агенты + установить контекст ssl.CERT_NONE ( Как отключить проверку ssl в python 3.x? )

Но я предполагаю, что то же самое не применимо, когда я использую FancyURLopener, так как, когда я устанавливаю контекст в методе open () вместе с url, он выдает ошибку недопустимых аргументов.

версия python = Python 2.7.12

Любые выводы будут полезны.

Заранее спасибо.

1 Ответ

0 голосов
/ 12 октября 2018

Мне удалось найти обходной путь.Добавили нижеприведенную часть в код, и это обошло защиту.

import ssl

ssl._create_default_https_context = ssl._create_unverified_context

...