pythonrequests请求https错误_如何解决python之requests安全证书(HTTPS请求)问题?

用requests包请求https的网站时,我们偶尔会遇到证书问题。也就是常见的SSLerror,遇到这种问题莫慌莫慌。

这里没有找到合适的网站去报SSL证书的错误,所以就假装请求了一个https的网站,然后给报了SSLerror了,然后下面是解决方法

1、可以直接关闭验证ssl证书

import requests

'''

:param proxies: (optional) Dictionary mapping protocol to the URL of the proxy.

:param verify: (optional) Either a boolean, in which case it controls whether we verify

the server's TLS certificate, or a string, in which case it must be a path

to a CA bundle to use. Defaults to ``True``.

'''

r = requests.get('https://kyfw.12306.cn',verify=False)

print(r.text)

这种方式直接在函数里面加如verify改变Ture或者False即可,因为post与get调用的都为request()函数,所以get与post都一样。

如果这种方式奏效就用这种方式,如果不奏效就用下面的一种:

import requests

'''

:param verify: (optional) Either a boolean, in which case it controls whether we verify

the server's TLS certificate, or a string, in which case it must be a path

to a CA bundle to use. Defaults to ``True``.

'''

## 证书路径

cert = '../cert/test.pem'

r = requests.get('https://kyfw.12306.cn',cert=cert)

print(r.text)

就用这种,直接把证书的路径丢给verify,请求即可。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于 Python 中使用 requests 库进行网络请求时,可以通过实现重试机制来处理请求失败的情况。以下是一个简单的实现示例: ```python import requests from requests.adapters import HTTPAdapter from requests.packages.urllib3.util.retry import Retry def requests_retry_session( retries=3, backoff_factor=0.3, status_forcelist=(500, 502, 504), session=None, ): session = session or requests.Session() retry = Retry( total=retries, read=retries, connect=retries, backoff_factor=backoff_factor, status_forcelist=status_forcelist, ) adapter = HTTPAdapter(max_retries=retry) session.mount('http://', adapter) session.mount('https://', adapter) return session # 使用示例 response = requests_retry_session().get('https://www.example.com') print(response.status_code) ``` 上述代码中,我们定义了一个名为 `requests_retry_session` 的函数来创建一个带有重试机制的 requests.Session 对象。在该函数中,我们使用了 `Retry` 类来配置重试策略,其中 `retries` 参数指定了最大重试次数,`backoff_factor` 参数指定了重试之间的延迟时间的乘数因子,`status_forcelist` 参数指定了需要触发重试的状态码列表。 然后,我们创建了一个 `HTTPAdapter` 对象,并将其与 `requests.Session` 对象进行关联,最后通过 `session.get()` 方法来发送请求并获取响应。 这样,在网络请求失败时,会自动进行重试,直到达到最大重试次数或成功获取到响应为止。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值