Python3 | requests 访问 https 网站

有些网站 https 需要证书才可以访问, 两种解决方法

Posted by Haauleon on April 11, 2022

一、指定证书

  指定一个本地证书用作客户端证书,可以是单个文件(包含秘钥和证书)或一个包含两个文件路径的元组。

1
2
3
import ssl

requests.get('https://kennethreitz.org', cert=('/path/client.cert', '/path/client.key'))



二、忽略证书(不安全)

  如果将 verify 设置为 False, requests 也能忽略对 ssl 证书的验证。

1
2
3
4
5
import requests
from requests.packages import urllib3

urllib3.disable_warinings()
req = requests.get('https://frwsyw.bjgjj.gov.cn/ish', verify=False)


解决 warning 的方式
1
2
3
InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised.

警告正在发出未经验证的 HTTPS 请求强烈建议添加证书验证

解决 warning 的方式:忽略验证警告信息,有两种方式。
新版本解决方式:

1
2
import urllib3
urllib3.disable_warinings(urllib3.exceptions.InsecureRequestWarning)


旧版本解决方式:

1
2
3
4
import requests
from requests.packages.urllib3.exceptions import InsecureRequestWarning

requests.packages.urllib3.disable_warinings(InsecureRequestWarning)