使用Python3.1提交登录表单

2024-03-28 21:48:20 发布

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

我试图使用python3.1.3脚本登录到这个网站:http://www.artofproblemsolving.com/Forum/ucp.php?mode=login。当时,我有这个:

import webbrowser
import urllib.request
import cgi
import cgitb
import urllib.parse
import hashlib
import http.cookiejar

p = urllib.parse.urlencode({'username':'MYUSERNAME','password':"MYPASSWORD"})

cj = http.cookiejar.CookieJar()
o = urllib.request.build_opener( urllib.request.HTTPCookieProcessor(cj) )
urllib.request.install_opener( o )

f = o.open( 'http://www.artofproblemsolving.com/Forum/ucp.php?mode=login',  p )
data = f.read()
f.close()
htm = open("file1.html", "w")
htm.write(str(data))
htm.close

f = o.open( 'http://www.artofproblemsolving.com/PAGEFORWHICHLOGINISREQUIRED' )
data = f.read()
f.close()
htm = open("file2.html", "w")
htm.write(str(data))
htm.close

print('fin')

但是,当我运行这段代码时,file1.html包含登录表单本身(没有消息),而file2.html包含“您没有登录”页面。在

谁能告诉我我做错了什么吗?很抱歉我的无能,我对Python还比较陌生。提前谢谢你!在

另外,可能涉及MD5散列密码吗?我一直在使用hashlib库,但运气不太好。如果是这样的话,有人能解释一下我将如何散列我的密码吗?在


Tags: importcomhttpclosedatarequesthtmlwww
2条回答

当我提交此表单时,登录按钮将作为&login=Login提交。也许这份表格也要求你提交?在

使用Mechanize可能会更好。它对于表单提交特别有用。在

相关问题 更多 >