使用python mechanize使用javascript md5散列函数登录网页
发布时间:2020-12-20 13:21:33 所属栏目:Python 来源:网络整理
导读:我正在尝试使用 python / mechanize登录此网页: http://www.solaradata.com/cgi-bin/mainProgram.cgi 登录表单使用Javascript函数,该函数在提交结果以进行身份??验证之前从多个字段值生成MD5哈希值.由于机械化无法执行javascript,我尝试在python中复制相同
我正在尝试使用
python / mechanize登录此网页:
http://www.solaradata.com/cgi-bin/mainProgram.cgi 登录表单使用Javascript函数,该函数在提交结果以进行身份??验证之前从多个字段值生成MD5哈希值.由于机械化无法执行javascript,我尝试在python中复制相同的功能,然后提交结果值.但是,我仍然收到“无效的用户/密码”错误. 这是我目前的代码,任何人都可以指出我哪里出错了?谢谢! url_login = 'http://www.solaradata.com/cgi-bin/mainProgram.cgi' import mechanize import md5 username = 'superfly' #not my real user/pass password = 'stickyguy' #not my real user/pass br = mechanize.Browser() br.open(url_login) br.select_form(nr=0) br.set_all_readonly(False) session = br['session'] br['user'] = username br['password'] = password m1 = md5.new() m1.update(password + username) br['password'] = m1.digest() m2 = md5.new() m2.update(password + session) br['hash'] = m2.digest() for form in br.forms(): #print form request2 = form.click() # mechanize.Request object try: response2 = mechanize.urlopen(request2) except mechanize.HTTPError,response2: pass print response2.geturl() # headers for name,value in response2.info().items(): if name != "date": print "%s: %s" % (name.title(),value) print response2.read() # body response2.close() 解决方法
使用m1.hexdigest()而不是m1.digest()
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |