Python爬虫之SSL认证处理

python爬虫关于SSL认证的问题

  • 初遇SSL认证(不是私密连接)

初遇SSL认证(不是私密连接)

当我们爬取12306的时候,会弹出一个窗口,显示连接不是私密连接,这里就是CA机构认证,每次访问的时候都会出现证书页面错误

我们直接写代码

  import request
   import requests
   response = requests.get('https://www.12306.cn')
   print(response.status_code)

运行结果爆出了requests.exceptions.SSLError
这就是说我们的验证证书错误了。那我们怎么解决呢,很简单,把verify参数设置成False就能解决现在这个错误

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

这样就能打印出请求成功的状态码,(200)

但是下面还会有一个警告,那么怎么解决,这个Warning,它建议我们给它指定证书。我们可以忽略这个警告
最终解决方案1

import requests
from requests.packages import urllib3

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

最终解决方案2
这里是采用捕获警告到日志的方式

import logging
import requests
logging.captureWarings(True)

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

当然,我们也可以直接指定一个证书用来作为客户端认证。可以是单个文件,或者一个包含2个文件的元组

import requests
response = requests.get('http://www.12306.cn',cert=('path/server.crt','path/key'))

指定路径,注意key不能加密

你可能感兴趣的:(python,请求端处理)