尝试创建一个自动登录网页,该网页接受HTTP POST输入但未能这样做。
以下是网页:https://job.jobnet.dk/CV/Login/Login.aspx
我创建了一个用户 stacktest ,密码为 abcdefghijklmn1 ,如果您想尝试一下。
以下是无效代码:
require 'rubygems'
require 'mechanize'
agent = Mechanize.new
page = agent.get 'https://job.jobnet.dk/CV/Login/Login.aspx'
login_form = page.form_with(:action => 'Login.aspx')
login_form['ctl00$ctl00$JobnetBaseMiddelContent$LoginContentPlaceHolder$txtUsername'] = 'stacktest'
login_form['ctl00$ctl00$JobnetBaseMiddelContent$LoginContentPlaceHolder$txtPassword'] = 'abcdefghijklmn1'
page = agent.submit login_form
p page # should be a new page but isn't a new page
毋庸置疑,它不起作用:)
还有一个名为 __ VIEWSTATE 的隐藏输入字段,其值为
/wEPDwUJOTczNzQwMzk1D2QWAmYPZBYCZg9kFgoCAQ8WAh4EVGV4dAVlPGEgY2xhc3M9Im1lbnUgbG9nb3V0bGluayIgaHJlZj0iL0NWL0xvZ2luL0xvZ2luLmFzcHgiIHRpdGxlPSJMb2cgaW5kIiBpZD0idG9wTGlua3NMb2dpbiI+TG9nIGluZDwvYT5kAgIPFgIfAGVkAgMPZBYEAgEPZBYCAgEPFgIfAAUSbG9nIGluZCBww6Ugam9ibmV0ZAIFD2QWAgIBD2QWCgIPDxYEHgVjbGFzcwVFbG9naW5mdWxsbGluZV9sZWZ0YWxpZ25fbGVmdHBhZCBsb2dpbnNwYWNlYWZ0ZXIgZXJyb3JDb250YWluZXJFbGVtZW50HgdWaXNpYmxlaGQCFQ9kFgICAQ8PFgIeC05hdmlnYXRlVXJsBQ4vQ1YvbG9naW4uYXNoeGRkAhcPFgIeBGhyZWYFIC9DVi9Mb2dpbi9Gb3Jnb3R0ZW5QYXNzd29yZC5hc3B4ZAIZD2QWBAIDD2QWAgIBDxYCHwQFHy9DVi9Mb2dpbi9OZXdVc2VySm9iU2Vla2VyLmFzcHhkAgUPZBYCAgEPDxYCHwMFDi9DVi9sb2dpbi5hc2h4ZGQCGw9kFgQCAQ9kFgICAQ8WAh8EBR8vQ1YvTG9naW4vTmV3VXNlckpvYlNlZWtlci5hc3B4ZAIDD2QWAgIBDw8WAh8DBQ4vQ1YvbG9naW4uYXNoeGRkAgQPFgIfAAX7Ajx1bD48bGk+PGEgaHJlZj0iaHR0cHM6Ly9pbmZvLmpvYm5ldC5kay92aWEyMDUuaHRtbCI+b20gam9ibmV0PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vaW5mby5qb2JuZXQuZGsvdmlhMTE1Lmh0bWwiPmdvZGUgcsOlZCB0aWwgam9ic8O4Z25pbmc8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9pbmZvLmpvYm5ldC5kay92aWEyLmh0bWwiPmJsYW5rZXR0ZXI8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9pbmZvLmpvYm5ldC5kay92aWEyMDYuaHRtbCI+cG9saXRpayBvbSBwZXJzb25kYXRhPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vaW5mby5qb2JuZXQuZGsvdmlhMjA3Lmh0bWwiPmpvYm5ldCBpbiBlbmdsaXNoPC9hPjwvbGk+PC91bD5kAgUPFgIfAmdkZGZTKNqgl0MJ9Ss0FPqJ0tr8E74T
干杯
答案 0 :(得分:4)
试试这个:
require 'rubygems'
require 'mechanize'
require 'pp'
user = 'stacktest'
password = 'abcdefghijklmn1'
agent = Mechanize.new
page = agent.get 'https://job.jobnet.dk/CV/Login/Login.aspx'
form = page.form_with(:action => 'Login.aspx')
form.field_with(:name => "ctl00$ctl00$JobnetBaseMiddelContent$LoginContentPlaceHolder$txtUsername").value = user
form.field_with(:name => "ctl00$ctl00$JobnetBaseMiddelContent$LoginContentPlaceHolder$txtPassword").value = password
page = form.click_button
pp page