234 votes

Grattage : SSL : erreur CERTIFICATE_VERIFY_FAILED pour http://en.wikipedia.org

J'utilise le code de "Web Scraping with Python" et j'ai toujours ce problème de certificat :

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("")

L'erreur est :

  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)>

J'ai aussi utilisé scrapy, mais j'ai eu le problème suivant : command not found : scrapy (j'ai essayé toutes sortes de solutions en ligne mais aucune ne fonctionne... vraiment frustrant).

1 votes

Urllib.error.URLError : <urlopen error [SSL : CERTIFICATE_VERIFY_FAILED] certificate verify failed : unable to get local issuer certificate (_ssl.c:1049)>.

2 votes

Et... s'il vous plaît, dites-moi la raison de cette erreur, j'aimerais vraiment savoir... Merci !

1 votes

Il y a 529 questions existantes sur SSL : CERTIFICATE_VERIFY_FAILED S'il vous plaît, trouvez votre solution et fermez le dossier comme duplicata.

792voto

Jey Miranda Points 1165

Il fut un temps où je me heurtais à ce problème. Si vous utilisez macOS, allez dans Macintosh HD > Applications > dossier Python3.6 (ou toute autre version de python que vous utilisez) > double-cliquez sur le fichier "Install Certificates.command". :D

6 votes

Oh je n'ai pas ce fichier Install Certificates.command sur mon mac... je ne sais pas pourquoi TAT

0 votes

Il doit s'agir d'un fichier situé dans le dossier dans lequel Python a été installé. Notez que ceci n'est vrai que pour Python3 ou supérieur.

50 votes

Si vous installez Python en utilisant Homebrew, ce fichier n'existe pas. La solution est ici : stackoverflow.com/a/44649450/412896

33voto

Hillsie Points 41

Cette commande de terminal :

open /Applications/Python\ 3.7/Install\ Certificates.command

Trouvé ici : https://stackoverflow.com/a/57614113/6207266

Cela a résolu le problème pour moi. Avec ma configuration

pip install --upgrade certifi

n'a pas eu d'impact.

0 votes

Ne fonctionne pas sur google colab

0 votes

@MiguelSilva open est spécifique à MacOS. Vous avez Google Colab sous MacOS ? Je ne connais pas colab.

0 votes

Dans mon cas, j'utilise le navigateur Opera sur un MacBook Pro intel I7 16Gb win10.

31voto

Azim Points 181

Pour résoudre ce problème :

Il suffit d'installer les certificats Python ! Un problème courant sur macOS.

Ouvrez ces fichiers :

Install Certificates.command
Update Shell Profile.command

Exécutez simplement ces deux scripts et vous n'aurez plus ce problème.

J'espère que cela vous aidera !

12 votes

Je ne vois pas de répertoire Python dans mon dossier d'application... J'utilise Anaconda et j'ai créé un nouvel env pour python 3.6 puisque j'avais précédemment installé python 2.7 (ce qui n'a apparemment pas créé de répertoire dans mon Application Dir non plus !)... Impossible de trouver la commande Certificates.command sur mon mac

7 votes

D'où sont-elles censées provenir ?

2 votes

@Azim : pourquoi pas dans Ubuntu ?

23voto

Hemant Points 627

Pour les utilisateurs novices, vous pouvez aller dans le dossier Applications et développer le dossier Python 3.7. Exécutez d'abord (ou double-cliquez) la commande Installer les certificats, puis la commande Mettre à jour le profil du shell.

enter image description here

4voto

Patrick Suzuki Points 31

Jetez un coup d'œil à cet article, il semble que pour les versions ultérieures de Python, les certificats ne sont pas préinstallés, ce qui semble causer cette erreur. Vous devriez pouvoir exécuter la commande suivante pour installer le paquet certifi : /Applications/Python\ 3.6/Install\ Certificates.command

Poste 1 : urllib et l'erreur " SSL : CERTIFICATE_VERIFY_FAILED ".

Poste 2 : Erreur Airbrake : urlopen error [SSL : CERTIFICATE_VERIFY_FAILED] La vérification du certificat a échoué : impossible d'obtenir le certificat de l'émetteur local.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X