[python] 스크래핑 : SSL : http://en.wikipedia.org에 대한 CERTIFICATE_VERIFY_FAILED 오류

나는 ‘파이썬으로 웹 스크래핑’의 코드를 연습하고 있으며이 인증서 문제가 계속 발생합니다.

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

영향이 없었습니다.


답변

초보 사용자의 경우 Applications 폴더로 이동하여 Python 3.7 폴더를 확장 할 수 있습니다. 이제 먼저 Install Certificates. 명령을 실행 (또는 두 번 클릭) 한 다음 Update Shell Profile. 명령을 실행합니다.

여기에 이미지 설명 입력


답변

두 단계가 저에게 효과적이었습니다.-Macintosh HD> Applications> Python3.7 폴더로 이동- “Install Certificates.command”를 클릭합니다.


답변

아나콘다를 사용하는 사람이라면 certifi패키지를 설치하면 됩니다. 자세한 내용은 다음을 참조하십시오.

https://anaconda.org/anaconda/certifi

설치하려면 터미널에 다음 줄을 입력하십시오.

conda install -c anaconda certifi