ホームページ >バックエンド開発 >Python チュートリアル >SSL を使用して Web サイトをスクレイピングするときに「CERTIFICATE_VERIFY_FAILED」エラーを修正する方法?

SSL を使用して Web サイトをスクレイピングするときに「CERTIFICATE_VERIFY_FAILED」エラーを修正する方法?

Barbara Streisand
Barbara Streisandオリジナル
2024-10-28 15:07:30501ブラウズ

How to Fix

証明書の検証に失敗しました: スクレイピング時の 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。