憑證驗證失敗:對抓取中的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中文網其他相關文章!