gpt4 book ai didi

Python与SSL——违反协议(protocol)发生EOF

转载 作者:可可西里 更新时间:2023-11-01 16:23:07 27 4
gpt4 key购买 nike

我正在尝试通过 Python 登录该网站。我有以下代码:

import sys
sys.path.append('ClientCookie-1.3.0')
import ClientCookie
sys.path.append('ClientForm-0.2.10')
import ClientForm

cookieJar = ClientCookie.CookieJar()

opener = ClientCookie.build_opener(ClientCookie.HTTPCookieProcessor(cookieJar))
opener.addheaders = [("User-agent","Mozilla/5.0 (compatible)")]
ClientCookie.install_opener(opener)
fp = ClientCookie.urlopen("login_page_url")
forms = ClientForm.ParseResponse(fp)
fp.close()

# print forms on this page
for form in forms:
print("***************************")
print(form)

form = forms[2]
form["username"] = "some_username"
form["password"] = "some_password"
fp = ClientCookie.urlopen(form.click())
fp.close()
fp = ClientCookie.urlopen("some_url_for_authorized_users_only")
html = fp.read()
fp.close();
print(html.decode('utf-8'))

输出

URLError: <urlopen error [Errno 8] _ssl.c:507: EOF occurred in violation of protocol>

我做错了什么?这是什么意思?我该如何解决这个错误?

最佳答案

看来您遇到的问题是由 OpenSSL 的过时版本引起的。查看版本

 $ openssl version -a

 $ python -c "import ssl; print ssl.OPENSSL_VERSION"

这些可能不一致。第一个命令显示您的系统使用的版本。如果您看到第二个命令的版本不同(可能是旧版本),这意味着 python 没有引用您安装的最新 openssl。

在我的例子中,第一个结果是 0.9~ 所以我通过自制软件将 OpenSSL 升级到 1.0.2k。然后我重新安装了 python 以执行更新的版本。

howtoupgradessl如果您使用 mac,是升级 ssl 的一个很好的引用。在这种情况下,您可能还想引用 this也因为较新的 osx 具有更强的安全性,您需要解锁。

关于Python与SSL——违反协议(protocol)发生EOF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22591408/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com