抓取:SSL:对于http://en.wikipedia.org,出现CERTIFICATE_VERIFY_FAILED错误。

9 浏览
0 Comments

抓取: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(我尝试了各种在线解决方案,但都没有成功...真令人沮丧)

0
0 Comments

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版本而异。

0
0 Comments

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相关。此外,行业中有一个不变的真理,那就是变化。所以过去有效的方法,可能在现在并不奏效。

0
0 Comments

问题的出现原因是SSL证书验证失败。解决方法是在代码中添加以下内容:

import ssl
ssl._create_default_https_context = ssl._create_unverified_context

这种方法的好处是只需要添加两行代码,而不需要进行系统更改。但是需要注意的是,如果在获取数据后对数据进行不当处理,这段代码可能会引入巨大的安全风险。因此,只有在明确了数据来源并且不用于生产环境时,才可以使用这段代码。对于临时操作来说,这种方法是有效的。

0