Mechanize gem不提交我的表格

时间:2014-10-21 16:26:46

标签: web-crawler mechanize

我正在使用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: ]}>}>

0 个答案:

没有答案