Python和SSL EOF违反了p

2024-06-25 23:11:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图通过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'))

输出

^{pr2}$

我做错什么了?这是什么意思?如何修复此错误?在


Tags: pathimportformclosesysformssomeopener
1条回答
网友
1楼 · 发布于 2024-06-25 23:11:29

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

 $ openssl version -a

以及

^{pr2}$

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

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

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

相关问题 更多 >