首頁 >後端開發 >Python教學 >如何修正使用 SSL 抓取網站時的「CERTIFICATE_VERIFY_FAILED」錯誤?

如何修正使用 SSL 抓取網站時的「CERTIFICATE_VERIFY_FAILED」錯誤?

Barbara Streisand
Barbara Streisand原創
2024-10-28 15:07:30499瀏覽

How to Fix

憑證驗證失敗:對抓取中的SSL 錯誤進行故障排除

抓取使用安全通訊端層(SSL) 協定的網站時,開發人員可能會遇到「CERTIFICATE_VERIFY_FAILED」錯誤。此錯誤表示網站的 SSL 憑證驗證失敗。

嘗試使用以下Python 程式碼抓取維基百科時會出現此錯誤的一個常見範例:

<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 >應用程式領域>> Python 3.6 資料夾(或您使用的任何版本的 Python),然後雙擊「安裝憑證.command」檔案。此命令會將必要的證書安裝到您的系統鑰匙圈中。

執行此指令後,在抓取維基百科或其他 SSL 安全網站時不應再出現「CERTIFICATE_VERIFY_FAILED」錯誤。

以上是如何修正使用 SSL 抓取網站時的「CERTIFICATE_VERIFY_FAILED」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn