2014-03-28 103 views
4

我试图用python Request包登录和刮取航空公司网站。我正在尝试加载主网站时遇到了下面的错误。该代码在去年使用,但直到现在我还没有尝试使用新的请求2.2.1。任何想法是怎么回事?Python请求:[SSL:CERTIFICATE_VERIFY_FAILED]证书验证失败(_ssl.c:547)

[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。

回答

1

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

这表示'Man-in-the-middle' attack

也许你可能有一个网络嗅探工具,如Fiddler或Wireshark运行。

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

相关问题