証明書の検証に失敗しました: スクレイピング時の SSL エラーのトラブルシューティング
Secure Socket Layer (SSL) プロトコルを使用する Web サイトをスクレイピングする場合、開発者は次のような問題に遭遇する可能性があります。 「CERTIFICATE_VERIFY_FAILED」エラー。このエラーは、Web サイトの SSL 証明書の検証が失敗したことを示します。
このエラーの一般的な例の 1 つは、次の Python コードを使用して Wikipedia をスクレイピングしようとしたときに発生します。
<code class="python">import urllib.request import bs4 import re pages = set() def getLinks(pageUrl): global pages html = urllib.request.urlopen("http://en.wikipedia.org"+pageUrl) bsObj = bs4.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("")</code>
これを実行するときコードを実行すると、次のエラーが発生する場合があります。
urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1049)>
macOS ユーザー向けの解決策
macOS を使用している場合、このエラーの解決策は簡単です。 [Macintosh HD] > [Macintosh HD] に移動します。アプリケーション> Python 3.6 フォルダー (または使用している Python のバージョン) に移動し、「Install Certificates.command」ファイルをダブルクリックします。このコマンドは、必要な証明書をシステム キーチェーンにインストールします。
このコマンドを実行すると、Wikipedia またはその他の SSL で保護された Web サイトをスクレイピングするときに「CERTIFICATE_VERIFY_FAILED」エラーが表示されなくなります。
以上がSSL を使用して Web サイトをスクレイピングするときに「CERTIFICATE_VERIFY_FAILED」エラーを修正する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。