无法使用Ruby的Mechanize登录 [英] Trouble logging in with Ruby's Mechanize

查看:111
本文介绍了无法使用Ruby的Mechanize登录的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

尝试创建一个自动登录网页,该网页接受HTTP POST输入但未能这样做。

Trying to create an automatic login to a webpage which takes HTTP POST input but failing to do so.

这是网页: https://job.jobnet.dk/CV/Login/Login.aspx

我创建了一个用户 stacktest ,密码为 abcdefghijklmn1 ,如果您想尝试一下。

I created a user stacktest with password abcdefghijklmn1 if you want to try your hand at it.

以下是无法使用的代码:

Here's the not-working code:

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

不用说它不起作用: )

Needless to say it does not work :)

还有一个名为 __ VIEWSTATE 的隐藏输入字段,其值为

There is also a hidden input field called __VIEWSTATE which has the value of

/wEPDwUJOTczNzQwMzk1D2QWAmYPZBYCZg9kFgoCAQ8WAh4EVGV4dAVlPGEgY2xhc3M9Im1lbnUgbG9nb3V0bGluayIgaHJlZj0iL0NWL0xvZ2luL0xvZ2luLmFzcHgiIHRpdGxlPSJMb2cgaW5kIiBpZD0idG9wTGlua3NMb2dpbiI+TG9nIGluZDwvYT5kAgIPFgIfAGVkAgMPZBYEAgEPZBYCAgEPFgIfAAUSbG9nIGluZCBww6Ugam9ibmV0ZAIFD2QWAgIBD2QWCgIPDxYEHgVjbGFzcwVFbG9naW5mdWxsbGluZV9sZWZ0YWxpZ25fbGVmdHBhZCBsb2dpbnNwYWNlYWZ0ZXIgZXJyb3JDb250YWluZXJFbGVtZW50HgdWaXNpYmxlaGQCFQ9kFgICAQ8PFgIeC05hdmlnYXRlVXJsBQ4vQ1YvbG9naW4uYXNoeGRkAhcPFgIeBGhyZWYFIC9DVi9Mb2dpbi9Gb3Jnb3R0ZW5QYXNzd29yZC5hc3B4ZAIZD2QWBAIDD2QWAgIBDxYCHwQFHy9DVi9Mb2dpbi9OZXdVc2VySm9iU2Vla2VyLmFzcHhkAgUPZBYCAgEPDxYCHwMFDi9DVi9sb2dpbi5hc2h4ZGQCGw9kFgQCAQ9kFgICAQ8WAh8EBR8vQ1YvTG9naW4vTmV3VXNlckpvYlNlZWtlci5hc3B4ZAIDD2QWAgIBDw8WAh8DBQ4vQ1YvbG9naW4uYXNoeGRkAgQPFgIfAAX7Ajx1bD48bGk+PGEgaHJlZj0iaHR0cHM6Ly9pbmZvLmpvYm5ldC5kay92aWEyMDUuaHRtbCI+b20gam9ibmV0PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vaW5mby5qb2JuZXQuZGsvdmlhMTE1Lmh0bWwiPmdvZGUgcsOlZCB0aWwgam9ic8O4Z25pbmc8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9pbmZvLmpvYm5ldC5kay92aWEyLmh0bWwiPmJsYW5rZXR0ZXI8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9pbmZvLmpvYm5ldC5kay92aWEyMDYuaHRtbCI+cG9saXRpayBvbSBwZXJzb25kYXRhPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vaW5mby5qb2JuZXQuZGsvdmlhMjA3Lmh0bWwiPmpvYm5ldCBpbiBlbmdsaXNoPC9hPjwvbGk+PC91bD5kAgUPFgIfAmdkZGZTKNqgl0MJ9Ss0FPqJ0tr8E74T



干杯

Cheers

推荐答案

试试这个:

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

这篇关于无法使用Ruby的Mechanize登录的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆