加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python-requests – Python请求:[SSL:CERTIFICATE_VERIFY_FAIL

发布时间:2020-12-20 13:41:29 所属栏目:Python 来源:网络整理
导读:我正在尝试使用 python请求包登录并抓取航空公司网站.我只是通过尝试加载主网站得到了undere错误.这段代码用于去年的工作,但直到现在我还没有尝试使用新的Requests 2.2.1.有什么想法发生了什么? [SSL:CERTIFICATE_VERIFY_FAILED]证书验证失败(_ssl.c:547)
我正在尝试使用 python请求包登录并抓取航空公司网站.我只是通过尝试加载主网站得到了undere错误.这段代码用于去年的工作,但直到现在我还没有尝试使用新的Requests 2.2.1.有什么想法发生了什么?

[SSL:CERTIFICATE_VERIFY_FAILED]证书验证失败(_ssl.c:547)

我正在使用请求2.2.1.

ssladapter.py

from requests.adapters import HTTPAdapter
from requests.packages.urllib3.poolmanager import PoolManager

from ssl import PROTOCOL_TLSv1


class SSLAdapter(HTTPAdapter):
    '''An HTTPS Transport Adapter that uses an arbitrary SSL version.'''

    __attrs__ = ['max_retries','config','_pool_connections','_pool_maxsize','_pool_block','ssl_version']

def __init__(self,ssl_version=None,**kwargs):
    self.ssl_version = ssl_version

    super(SSLAdapter,self).__init__(**kwargs)


def init_poolmanager(self,connections,maxsize,block=False):
    self.poolmanager = PoolManager(num_pools=connections,maxsize=maxsize,block = block,ssl_version=self.ssl_version)

scrape.py

import requests
import ssladapter
from ssl import PROTOCOL_TLSv1

session = requests.Session()
session.mount('https://',ssladapter.SSLAdapter(ssl_version=PROTOCOL_TLSv1))

request = session.get("www.delta.com")

! SSLERROR在这里提出.

解决方法

此错误不是Requests库的问题,因为它已经过严格测试.

这表明‘Man-in-the-middle’ attack.

也许你可能正在使用像Fiddler或Wireshark一样运行的网络嗅探工具.

关于这个related Question的更多详细信息这里建议SSL应该如何工作.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读