使用Python 3.1提交登录表单
问题描述:
我想通过使用Python 3.1.3脚本登录本网站:http://www.artofproblemsolving.com/Forum/ucp.php?mode=login。当时,我有这样的:使用Python 3.1提交登录表单
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图书馆合作,并没有多少运气。如果是这样的话,有人可以请解释我将如何去散列我的密码吗?
答
当我提交此表单时,登录按钮被提交为&login=Login
。也许这种形式要求你也提交?
是的,那是问题所在。谢谢! – user595531 2011-01-30 14:56:24