我正在尝试使用FancyURLopener执行以下代码(从html读取内容)。该代码在过去2个月左右的时间内都可以正常工作,但是现在它已开始引发错误:IOError:[Errno套接字错误] [SSL:CERTIFICATE_VERIFY_FAILED]证书验证失败(_ssl.c:590)

当我尝试在本地运行它时,它就像一种魅力。

从urllib导入urlopen

从urllib导入FancyURLopener

从bs4导入BeautifulSoup

汇入要求

doc_name =“ XYZ”

类MyOpener(FancyURLopener):

        version = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11'


mopen = MyOpener()

def extract_count_from_url(url,tag_name,tag_type,html_tag):

      html = mopen.open(url).read()
      soup = BeautifulSoup(html, "html.parser")


我已经在stackoverflow和google上进行了搜索。我得到的答案主要是使用urllib2 / urllib库并使用用户代理+将上下文设置为ssl.CERT_NONE(How do I disable the ssl check in python 3.x?

但是我想当我使用FancyURLopener时,这是不适用的,因为当我在open()方法中与url一起设置上下文时,会引发无效参数错误。

python版本= Python 2.7.12

任何线索都将有所帮助。

提前致谢。

最佳答案

我能够找出解决方法。
在代码中添加了以下部分,它绕过了安全性。

进口ssl

ssl._create_default_https_context = ssl._create_unverified_context

关于python-2.7 - 尝试通过FancyURLopener读取URL时,出现[SSL:CERTIFICATE_VERIFY_FAILED]证书验证失败(_ssl.c:590)错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52777440/

10-14 17:42