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