python requests ssl 证书问题

错误信息:

requests.exceptions.SSLError: ("bad handshake: Error([('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')],)",)

python做爬虫,对于有的网站,需要验证证书:比如:七麦,创奇等。

 方法一:加上一个参数:verify=证书路径,或verify=False

import requests

response = requests.get("https://www.qimai.cn/",verify=False) 

print(request.text)

方法二:(推荐)

ssl._create_default_https_context = ssl._create_unverified_context#注意用了这个就不能用requests了,得用urllib2.Request


import ssl
import urllib2
 
ssl._create_default_https_context = ssl._create_unverified_context
req = urllib2.Request('https://inv-veri.chinatax.gov.cn/')
data = urllib2.urlopen(req).read()
print(data

方法三:

#SSL证书验证

import requests

response = requests.get('https://www.12306.cn', verify=False)

print(response.status_code)

不过我们发现报了一个警告,它建议我们给它指定证书。我们可以通过设置忽略警告的方式来屏蔽这个警告:

import requests
from requests.packages import urllib3
urllib3.disable_warnings()
response = requests.get('https://www.12306.cn', verify=False)
print(response.status_code)

或者通过捕获警告到日志的方式忽略警告:

import logging
import requests
logging.captureWarnings(True)
response = requests.get('https://www.12306.cn', verify=False)
print(response.status_code)

 如果我上面三种方法还不能解决你ssl的错误的话,请重新安装requests:

python2下载版本:pip install requests==2.6.0  

       python3下载版本:pip install requests==2.7.0 

扫描二维码关注公众号,回复: 5969484 查看本文章

      再次运行成功。

      示例:例如这个网址https://grwsyw.bjgjj.gov.cn/ish/,必须使用对的requests版本

     

import requests
req = requests.get('https://grwsyw.bjgjj.gov.cn/ish/',verify=False)
print(req.text)

参考文档:https://www.cnblogs.com/fh-fendou/p/7479812.html

猜你喜欢

转载自blog.csdn.net/qq_15256443/article/details/88249034