我正在使用Mechanize gem对我的Rails应用程序执行爬虫。我想登录,但我在这里停了。
def start_login
begin
login_page = mechanize.get("http://myservice:31031/login")
login_form = login_page.form_with(:action => '/login') do |f|
f.field_with(:name => "user[username]").value = "user"
f.field_with(:name => "user[password]" ).value = "password"
end.submit
rescue Exception => exception
puts exception.message
end
end
但是提交不会将我发送到新页面,它只是重定向到同一页面。我对其他网站进行了一些测试,我可以登录并检查,但这些测试之间唯一不同的是字段名称。我不知道它是否重要,但其他字段有简单的名称(user_name,user_password),但在这里我使用哈希....我真的迷路了!!!
在提交操作后检查login_form时:
puts login_form.inspect
这是输出:
#<Mechanize::Page
{url #<URI::HTTP:0x00000002ba0728 URL:http://myservice:31031/login>}
{meta_refresh}
{title "\nBeesor\n"}
{iframes}
{frames}
{forms
#<Mechanize::Form
{name nil}
{method "POST"}
{action "/login"}
{fields
[hidden:0x15fae14 type: hidden name: utf8 value: ✓]
[hidden:0x15fa7ac type: hidden name: authenticity_token value: d+BaksCcM3MHVi0hdENu9EIIia17KsROLfbTqqyrWPs=]
[text:0x15fa0f4 type: text name: user[username] value: ]
[field:0x15f9b2c type: password name: user[password] value: ]}
{radiobuttons}
{checkboxes}
{file_uploads}
{buttons [submit:0x15f9960 type: submit name: commit value: ]}>}>