我正在尝试使用Python 3.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很陌生。提前谢谢!
P.S。可能它关注MD5哈希密码?我一直在使用hashlib库,并没有太多运气。如果是这种情况,有人可以解释一下我将如何哈希密码?
答案 0 :(得分:1)
当我提交此表单时,登录按钮将以&login=Login
的形式提交。也许这种形式要求你也提交?
答案 1 :(得分:0)
使用Mechanize
可能会好得多。它对表单提交特别有用。