问题现象:
HTTPSConnectionPool(host='api.ebay.com', port=443): Max retries exceeded with url: /ws/api.dll (Caused by SSLError(SSLError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:749)'),))
问题分析及解决思路:
要在国内快速爬海外的站点,不是有专线就是通过代理实现跨境问题,当时选择代理出海,正好爬的是https的站点,所以在代理端自己生成一个相关域名的证书,centos 系统客户端做了信任配置,所以之前用的php 请求的接口数据正常,改为用python 去爬的时候就会报证书问题,刚开始想到的就是证书问题,为里确认是证书问题,把客户端代理去掉,请求正常。说明centos系统层做的信任在python爬虫代码没起作用。
应该是python 自身有一定信任的配置:SSL证书路径、SSL验证开启与关闭,google后果真不出我所料
python lib相关配置配件参数:
/usr/local/python3/lib/python3.6/site-packages/ebaysdk/connection.py (所在文件)
verify:Ture/False,用于验证SSL证书开关
verify=True (默认值),verify参数改为False,表示不验证服务器端的证书