【问题标题】:Python Requests SSL Error inconsistencyPython 请求 SSL 错误不一致
【发布时间】:2018-04-27 17:15:09
【问题描述】:

情况就是这样。

我正在运行一个 python 脚本,它应该登录到一个网站,并保存 cookie 以在网站上执行更多操作。 程序在我的电脑上按预期运行,但是……当我把它带到我老板的电脑上时,程序失败了。

这是回溯消息:

requests.exceptions.SSLError: HTTPSConnectionPool(host='www.somehost.com', port=443): Max retries exceeded with url: www.somehost.com (Caused by SSLError(SSLError(1, u'[SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] sslv3 alert handshake failure (_ssl.c:590)'),))

这是我的代码:

from requests import Session

# create the session variable
s = Session()

# get the cookie format of any web page that will kick the bot out to log in
s.get(base_url + "prodmirr/servlet/Product/additional_template_list.html", verify=False)

这绝对不是防火墙问题。它可以在我的电脑上按预期运行,即使我被 McAfee 诅咒了,而且我的老板很幸运能够使用 Windows Defender。我们检查了,他的电脑上没有任何被阻止的东西。我们都在运行最新版本的 Windows 10。

我们都有相同版本的 urllib。可能重复的问题中的解决方案根本没有改变。

如果需要任何其他信息,请随时询问。 提前致谢。

【问题讨论】:

  • 我想弄清楚为什么它可以在我的电脑上运行,但不能在我老板的电脑上运行
  • 您可能为 urllib 设置了不同的模块版本或不同的密码。您应该查看该副本中链接的两个问题 - 您应该尝试两个非常好的解决方案。 (使用额外的安全包安装请求并手动设置 urllib 密码

标签: python ssl request


【解决方案1】:

在几乎一整天的工作之后,我已经解决了这个问题。所有这些问题似乎都发生在我老板使用的 Requests 版本 2.18.4 中。

我使用的是 2.11.1 版

要从 2.18.4 转到 2.11.1,只需在 cmd.exe 中执行以下命令

pip uninstall requests
pip install requests==2.11.1

这解决了 SSL 的所有问题。感谢您的帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-01
    • 2015-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多