为什么使用网站上的Mechanize重定向到主页?

时间:2014-10-17 15:27:19

标签: ruby-on-rails ruby

我尝试使用Mechanize自动连接到网站。

我在互联网上搜索过但我无法找到解决问题的方法,这就是为什么在运行form.submit后,我会返回主页?

我尝试连接时是否可以获取日志?

我的代码:

 mechanize = Mechanize.new do |agent| 
    agent.user_agent_alias = "Linux Mozilla"
 end 

page = mechanize.get("http://website.org/")
 form = mechanize.page.forms.first
  puts form.content
 form.username = "mylogin"
 form.password = "mypassword"
form.submit

网站的摘要代码:

<div id="signincontainer">
    <form method="POST" action="http://website.org/" name="FL" id="signin">
      <input name="op" value="login" type="hidden">
      <input name="redirect" value="" type="hidden">
      <span class="signinq">
      <input style="background: url('images/username.png') no-repeat scroll 5px 50% rgb(255, 255, 255);" id="username" name="login" title="username" tabindex="4" type="text">
      <a class="donthaveaccount" href="http://website.org/signup.html"><span>
      Sign Up
      </span></a> </span> <span class="signinq">
      <input style="background: url('images/password.png') no-repeat scroll 5px 50% rgb(255, 255, 255);" id="password" name="password" value="" title="password" tabindex="5" type="password">
      <a class="forgotpassword" href="http://website.org/forgot-pass.html" id="resend_password_link"><span>
      Forgot your password?
      </span></a> </span>
      <input id="signin_submit" value="Enviar" tabindex="6" src="images2/signin.png" type="image">
    </form>
  </div>

我正在运行Ruby 1.9.3-p484和Mechanize 2.0.1。

1 个答案:

答案 0 :(得分:0)

Tin Man 我找到了Mozilla的完整ID但是我遇到了同样的问题,当我在密码中没有写任何密码或登录时,但是当我写密码时我什么也得不到?

我改进了我的代码。

agent = Mechanize.new {| a | a.log = Logger.new(“Mechanize.log”)} agent.read_timeout = 60

def add_cookie(agent, uri, cookie)
  uri = URI.parse(uri)
  Mechanize::Cookie.parse(uri, cookie) do |cookie|
    agent.cookie_jar.add(uri, cookie)
  end
end

agent.user_agent_alias =  'Linux Mozilla'
        {
          'Linux Mozilla' => 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4) Gecko/20030624',
          'Linux Firefox' => 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.1) Gecko/20100122 firefox/3.6.1'
         }

   agent.get("http://youwatch.org/?op=my_files")
           form = agent.page.parser.css('form')[0]
            agent.page.forms[0]["login"] = "zyriuse"
            agent.page.forms[0]["password"] = "pbxk@1064"
        f = agent.page.forms[0].submit
   puts f.content