尝试通过FancyURLopener读取URL时,出现[SSL:CERTIFICATE_VERIFY_FAILED]证书验证失败(_ssl.c:590)错误

时间:2018-10-12 10:21:48

标签: python-2.7 ssl fancyurlopener

我正在尝试使用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

任何线索都将有所帮助。

谢谢。

1 个答案:

答案 0 :(得分:0)

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

导入ssl

ssl._create_default_https_context = ssl._create_unverified_context

相关问题