「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)>
ところで、私もスクレイピーを練習していましたが、問題が発生し続けました:コマンドが見つかりません:スクレイピー(オンラインであらゆる種類のソリューションを試しましたが、どれも機能しません...本当にイライラします)
昔々、私はこの問題につまずいた。 macOSを使用している場合は、[Macintosh HD]> [アプリケーション]> [Python3.6]フォルダー(または使用しているpythonのバージョン)> [Install Certificates.command]ファイルをダブルクリックします。 :D
これを解決するには:
必要なことは、Python証明書をインストールすることだけです! macOSの一般的な問題。
これらのファイルを開きます:
Install Certificates.command
Update Shell Profile.command
これらの2つのスクリプトを実行するだけで、この問題は発生しなくなります。
お役に立てれば!
この投稿を見てください、それ以降のバージョンのPythonでは、証明書が事前にインストールされておらず、このエラーが発生しているようです。次のコマンドを実行して、certifiパッケージをインストールできるはずです:/Applications/Python\ 3.6/Install\ Certificates.command
投稿1: rllibおよび「SSL:CERTIFICATE_VERIFY_FAILED」エラー
投稿2: エアブレーキエラー:urlopenエラー[SSL:CERTIFICATE_VERIFY_FAILED]証明書の検証に失敗しました:ローカル発行者証明書を取得できません
私のために2つのステップが働いた:-Macintosh HDに行く>アプリケーション> Python3.7フォルダ-「Install Certificates.command」をクリック
悲しいことに、私は問題を解決しませんでした。しかし、コードを機能させることができました(ほとんどすべてのコードにこのprobelm btwがあります)ローカル発行者証明書の問題はpython3.7で発生するため、python2.7 QAQに変更し、「urllib2 import urlopenから」 「from urllib.request import urlopen」の代わりに悲しい...
URLを"http://en.wikipedia.org"
から"https://en.wikipedia.org"
に変更します。