抓取:SSL:对于http://en.wikipedia.org,出现CERTIFICATE_VERIFY_FAILED错误。
抓取:SSL:对于http://en.wikipedia.org,出现CERTIFICATE_VERIFY_FAILED错误。
我正在练习《使用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: # 遇到新页面 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:
顺便说一下,我也在练习Scrapy,但一直遇到问题:命令未找到:scrapy(我尝试了各种在线解决方案,但都没有成功...真令人沮丧)
Scraping: SSL: CERTIFICATE_VERIFY_FAILED错误的原因是由于SSL证书验证失败。解决方法是安装缺失的证书。
对于macOS用户,可以按照以下步骤解决该问题:
1. 打开Finder,进入Macintosh HD > Applications > Python3.6文件夹(或者你使用的Python版本文件夹)。
2. 双击"Install Certificates.command"文件。
如果在macOS上找不到"Install Certificates.command"文件,可以尝试以下解决方法:
1. 如果使用Homebrew安装了Python,则不会有该文件。可以在此链接找到解决方法:stackoverflow.com/a/44649450/412896。
对于Windows 10用户,可以尝试以下解决方法:
找不到该文件。
另外,还有其他一些解决方法:
1. 使用命令sudo /Applications/Python\ 3.7/Install\ Certificates.command
(需要超级用户权限)。
2. 使用命令import ssl ssl._create_default_https_context = ssl._create_unverified_context
(可能存在安全问题)。
3. 安装Python官网提供的安装程序,而不是其他选项。
需要注意的是,这些解决方法可能因操作系统、Python版本或安装方式而有所不同。但是根据用户的反馈,这些方法大多数情况下都能解决该问题。
总结起来,Scraping: SSL: CERTIFICATE_VERIFY_FAILED错误是由于SSL证书验证失败引起的。解决方法是安装缺失的证书,具体步骤因操作系统和Python版本而异。
Scraping: SSL: CERTIFICATE_VERIFY_FAILED错误是由于SSL证书验证失败导致的。解决该问题的方法如下:
在终端中运行以下命令:
open /Applications/Python\ 3.7/Install\ Certificates.command
该命令的来源可以在以下链接中找到:
https://stackoverflow.com/a/57614113/6207266
根据我的配置,执行以下命令对我解决了该问题:
pip install --upgrade certifi
在我的情况下,我正在运行Opera浏览器,操作系统是win10,使用Intel I7处理器和16GB内存的MacBook Pro。值得注意的是,上述命令是在操作系统级别上执行的,与浏览器无关。它与Python相关。此外,行业中有一个不变的真理,那就是变化。所以过去有效的方法,可能在现在并不奏效。