나는 ‘파이썬으로 웹 스크래핑’의 코드를 연습하고 있으며이 인증서 문제가 계속 발생합니다.
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)>
Btw, 나는 또한 스크래피를 연습했지만 문제가 계속 발생했습니다. 명령을 찾을 수 없음 : 스크래피 (온라인에서 모든 종류의 솔루션을 시도했지만 아무것도 작동하지 않습니다 … 정말 실망)
답변
옛날에 나는이 문제를 우연히 발견했습니다. macOS를 사용하는 경우 Macintosh HD> Applications> Python3.6 폴더 (또는 사용중인 Python 버전)로 이동하여 “Install Certificates.command”파일을 두 번 클릭합니다. :디
답변
확인되지 않은 SSL을 사용하려면 다음을 코드에 추가 할 수 있습니다.
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
답변
이를 해결하려면 :
Python 인증서를 설치하기 만하면됩니다! macOS의 일반적인 문제입니다.
다음 파일을 엽니 다.
Install Certificates.command
Update Shell Profile.command
이 두 스크립트를 실행하기 만하면 더 이상이 문제가 발생하지 않습니다.
도움이 되었기를 바랍니다!
답변
이 터미널 명령 :
open /Applications/Python\ 3.7/Install\ Certificates.command
여기에서 찾을 수 있습니다 :
https://stackoverflow.com/a/57614113/6207266
나를 위해 해결했습니다. 내 구성으로
pip install --upgrade certifi
영향이 없었습니다.
답변
답변
두 단계가 저에게 효과적이었습니다.-Macintosh HD> Applications> Python3.7 폴더로 이동- “Install Certificates.command”를 클릭합니다.
답변
아나콘다를 사용하는 사람이라면 certifi
패키지를 설치하면 됩니다. 자세한 내용은 다음을 참조하십시오.
https://anaconda.org/anaconda/certifi
설치하려면 터미널에 다음 줄을 입력하십시오.
conda install -c anaconda certifi