it-roy-ru.com

Очистка: ошибка SSL: CERTIFICATE_VERIFY_FAILED для http://en.wikipedia.org

Я практикую код из "Web Scraping with Python", и у меня постоянно возникает проблема с сертификатом:

from urllib.request import urlopen 
from bs4 import BeautifulSoup 
import re

pages = set()
def getLinks(pageUrl):
    global pages
    html = urlopen("http://en.wikipedia.org"+pageUrl)
    bsObj = BeautifulSoup(html)
    for link in bsObj.findAll("a", href=re.compile("^(/wiki/)")):
        if 'href' in link.attrs:
            if link.attrs['href'] not in pages:
                #We have encountered a new page
                newPage = link.attrs['href'] 
                print(newPage) 
                pages.add(newPage) 
                getLinks(newPage)
getLinks("")

Ошибка:

  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/urllib/request.py", line 1319, in do_open
    raise URLError(err)
urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1049)>

Кстати, я также практиковал scrapy, но продолжал получать проблему: команда не найдена: scrapy (я пробовал все виды решений онлайн, но ни один не работает ... действительно расстраивает)

7
Catherine4j

Однажды я наткнулся на эту проблему. Если вы используете macOS, перейдите в Macintosh HD> Приложения> Папка Python3.6 (или любую другую версию python, которую вы используете)> дважды щелкните файл «Install Certificates.command». : D

19
Jey Miranda

Чтобы решить это: 

Все, что вам нужно сделать, это установить сертификаты Python! Распространенная проблема в macOS. 

Откройте эти файлы: 

Install Certificates.command
Update Shell Profile.command

Просто запустите эти два сценария, и у вас больше не будет этой проблемы. 

Надеюсь это поможет!

4
Ozi

Взгляните на этот пост, похоже, что для более поздних версий Python сертификаты предварительно не установлены, что, по-видимому, и вызывает эту ошибку. Для установки пакета certifi вы должны выполнить следующую команду: /Applications/Python\ 3.6/Install\ Certificates.command

Сообщение 1: urllib и ошибка "SSL: CERTIFICATE_VERIFY_FAILED"

Сообщение 2: Ошибка воздушного тормоза: ошибка urlopen [SSL: CERTIFICATE_VERIFY_FAILED] проверка сертификата не удалась: невозможно получить сертификат локального эмитента

2
Patrick Suzuki

я не решил проблему, к сожалению . но сумел заставить работать коды (почти все мои коды имеют эту проблему между прочим) проблема локального сертификата эмитента происходит под python3.7so я изменил вернуться к python2.7 QAQ и все, что нужно было изменить, включая «из urllib2 импорта urlopen» вместо «из urllib.request импорта urlopen» так печально ...

1
Catherine4j

Измените ваш URL с "http://en.wikipedia.org" на "https://en.wikipedia.org"

1
Nick Garlis