【发布时间】:2014-03-28 01:00:10
【问题描述】:
我正在尝试使用 python 请求包登录并抓取航空公司网站。仅通过尝试加载主网站,我就收到了以下错误。该代码去年可以使用,但直到现在我还没有尝试使用新的 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。
【问题讨论】:
标签: python-requests