web-dev-qa-db-ja.com

スクレイピング:SSL:CERTIFICATE_VERIFY_FAILED error for 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)>

ところで、私もスクレイピーを練習していましたが、問題が発生し続けました:コマンドが見つかりません:スクレイピー(オンラインであらゆる種類のソリューションを試しましたが、どれも機能しません...本当にイライラします)

30
Catherine4j

昔々、私はこの問題につまずいた。 macOSを使用している場合は、[Macintosh HD]> [アプリケーション]> [Python3.6]フォルダー(または使用しているpythonのバージョン)> [Install Certificates.command]ファイルをダブルクリックします。 :D

93
Jey Miranda

これを解決するには:

必要なことは、Python証明書をインストールすることだけです! macOSの一般的な問題。

これらのファイルを開きます:

Install Certificates.command
Update Shell Profile.command

これらの2つのスクリプトを実行するだけで、この問題は発生しなくなります。

お役に立てれば!

12
Ozi

この投稿を見てください、それ以降のバージョンのPythonでは、証明書が事前にインストールされておらず、このエラーが発生しているようです。次のコマンドを実行して、certifiパッケージをインストールできるはずです:/Applications/Python\ 3.6/Install\ Certificates.command

投稿1: rllibおよび「SSL:CERTIFICATE_VERIFY_FAILED」エラー

投稿2: エアブレーキエラー:urlopenエラー[SSL:CERTIFICATE_VERIFY_FAILED]証明書の検証に失敗しました:ローカル発行者証明書を取得できません

3
Patrick Suzuki

私のために2つのステップが働いた:-Macintosh HDに行く>アプリケーション> Python3.7フォルダ-「Install Certificates.command」をクリック

2
Alexis Berson

悲しいことに、私は問題を解決しませんでした。しかし、コードを機能させることができました(ほとんどすべてのコードにこのprobelm btwがあります)ローカル発行者証明書の問題はpython3.7で発生するため、python2.7 QAQに変更し、「urllib2 import urlopenから」 「from urllib.request import urlopen」の代わりに悲しい...

1
Catherine4j

URLを"http://en.wikipedia.org"から"https://en.wikipedia.org"に変更します。

0
Nick Garlis