尝试使用Requests会话发出一个简单的get请求,但是我一直在获取特定网站的SSLerror。我认为问题可能出在网站上(我使用https://www.ssllabs.com进行了扫描,结果下降了),但是我不确定,因为我对该领域一无所知:)我想了解发生了什么。
一个解决方案/解释将是巨大的,谢谢!
编码:
import requests
requests.get('https://www.reporo.com/')
我收到下一个错误:
SSLError: [Errno bad handshake] [('SSL routines', 'SSL3_GET_SERVER_CERTIFICATE', 'certificate verify failed')]
---------------------------------------------------------------------------
SSLError Traceback (most recent call last)
<ipython-input-7-cfc21b287fee> in <module>()
----> 1 requests.get('https://www.reporo.com/')
/usr/local/lib/python2.7/dist-packages/requests/api.pyc in get(url, **kwargs)
63
64 kwargs.setdefault('allow_redirects', True)
---> 65 return request('get', url, **kwargs)
66
67
/usr/local/lib/python2.7/dist-packages/requests/api.pyc in request(method, url, **kwargs)
47
48 session = sessions.Session()
---> 49 response = session.request(method=method, url=url, **kwargs)
50 # By explicitly closing the session, we avoid leaving sockets open which
51 # can trigger a ResourceWarning in some cases, and look like a memory leak
/usr/local/lib/python2.7/dist-packages/requests/sessions.pyc in request(self, method, url, params, data, headers, cookies, files, auth, timeout, allow_redirects, proxies, hooks, stream, verify, cert, json)
459 }
460 send_kwargs.update(settings)
--> 461 resp = self.send(prep, **send_kwargs)
462
463 return resp
/usr/local/lib/python2.7/dist-packages/requests/sessions.pyc in send(self, request, **kwargs)
571
572 # Send the request
--> 573 r = adapter.send(request, **kwargs)
574
575 # Total elapsed time of the request (approximately)
/usr/local/lib/python2.7/dist-packages/requests/adapters.pyc in send(self, request, stream, timeout, verify, cert, proxies)
429 except (_SSLError, _HTTPError) as e:
430 if isinstance(e, _SSLError):
--> 431 raise SSLError(e, request=request)
432 elif isinstance(e, ReadTimeoutError):
433 raise ReadTimeout(e, request=request)
SSLError: [Errno bad handshake] [('SSL routines', 'SSL3_GET_SERVER_CERTIFICATE', 'certificate verify failed')]
我在https://www.ssllabs.com上进行了扫描,结果如下:
SSL Report: reporo.com
Assessed on: Sun Feb 22 21:42:57 PST 2015 | Clear cache Scan Another >>
Server Domain(s) Test time Grade
1 154.51.128.13
Certificate not valid for domain name
reporo.com
Sun Feb 22 21:40:53 PST 2015
Duration: 9.167 sec -
2 198.12.15.168
protected.ddosdefend.com
Ready
www.reporo.com
Sun Feb 22 21:41:02 PST 2015
Duration: 115.189 sec
F
www.reporo.com的证书本身(不是reporo.com)有效,但是缺少链证书,如ssllabs的报告所示:
Chain issues Incomplete
....
2 Extra download Thawte DV SSL CA
Fingerprint: 3ca958f3e7d6837e1c1acf8b0f6a2e6d487d6762
要点是“未完成”和“额外下载”。一些浏览器将缓存缺少的链证书,其他浏览器将进行下载,而其他浏览器将失败。如果您尝试使用新的Firefox配置文件(该站点没有缓存任何证书)尝试该站点,它也会失败。
您可以下载缺少的链证书,并将其用作带有verify
请求参数的受信任CA证书。不要只禁用验证,因为这样您就容易受到中间人攻击。
分步说明:
chain.pem
。确保每个文件都以有效的行尾字符结尾(不是下载的)。结果文件应如下所示。requests.get('https://www.reporo.com/', verify = 'chain.pem')
问题内容: 我使用请求库从网站上获取了一些cookie,但是我只能从响应中获取cookie,如何从请求中获取cookie?谢谢! 问题答案: 或者,您可以在请求之前和之后使用和观察:
问题内容: 我正在尝试教自己一些基本的网络抓取。使用Python的请求模块,在尝试以下操作之前,我能够抓取各种网站的html: 我得到的不是基本的html,而是本页面的内容: 我已经尝试过将get / post与我可以从文档,SO和其他示例中猜到的每种语法进行多种组合。我不明白上面看到的内容,无法将其转换为可以阅读的任何内容,也无法弄清楚如何获得自己真正想要的东西。我的问题是,如何获取以上页面的h
在 Nginx 的典型应用场景中,几乎都是只读取 HTTP 头即可,例如负载均衡、正反向代理等场景。但是对于 API Server 或者 Web Application ,对 body 可以说就比较敏感了。由于 OpenResty 基于 Nginx ,所以天然的对请求 body 的读取细节与其他成熟 Web 框架有些不同。 最简单的 “Hello ****” 我们先来构造最简单的一个请求,POST
说明 获取叫车请求id,没有id无法叫车 请求地址 /v1/order/Create/orderId 支持格式 {url}?k1=v1&k2=v2&k3=v3&... HTTP请求方式 Get 是否需要登录 是 关于登录授权,参见 如何登录授权 访问授权限制 暂无 请求参数 名称 类型 必选 描述 client_id string yes 申请应用时分配的AppKey access_token s
问题内容: 我想知道如何一次获取多个GET URL,然后将获取的JSON数据放入我的React DOM元素中。 这是我的代码: 但是,我想从服务器中获取其他JSON数据,然后使用传递到其中的所有这些JSON数据呈现我的ReactDOM。例如: 这可能吗?如果不是,将多个JSON数据提取到我的渲染ReactDOM元素中的其他解决方案是什么? 问题答案: 您可以在解决方案之前依靠Promises来执行
问题内容: 我正在尝试解析使用Python Requests库完成的HEAD请求的结果,但似乎无法访问响应内容。 根据文档,我应该能够从request.Response.text访问内容。这对GET请求对我来说效果很好,但对HEAD请求返回None。 GET请求(有效) 内容= HEAD请求(无内容) 内容= 编辑 好的,我很快就从答案中意识到,HEAD请求不应返回仅内容标头。但这是否意味着,要访