https爬虫出现 SSL: CERTIFICATE_VERIFY_FAILED (同时打开fiddler就会出现)

解决办法:关闭fiddler再运行python程序。[使用的requests模块]

另外的解决办法:【下面的方法摘选自大佬博客,感谢大佬】

(1)全局设置,对requests不生效

ssl._create_default_https_context = ssl._create_unverified_context

(2)urllib2.urlopen 传参 

context = ssl._create_unverified_context()

urllib2.urlopen(context=context)

(3)参考 urllib2.urlopen 为opener叠加handler

# Anaconda2\Lib\urllib2.py
    # def urlopen
        # elif context:
            # https_handler = HTTPSHandler(context=context)
            # opener = build_opener(https_handler)   

# urllib2.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590)>
try:
    opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookiejar))
    resp = opener.open(req)        
except urllib2.URLError as err:
    print err
    opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookiejar), urllib2.HTTPSHandler(context=context))  #叠加多个 handler
    resp = opener.open(req)

 (4)request.get 传参

# requests.exceptions.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590)
try:
    r = requests.get(url, headers=headers, cookies=cookie)
except requests.exceptions.SSLError as err:
    print err
    r = requests.get(url, headers=headers, cookies=cookie, verify=False)

 

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐