Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 为什么在网站上使用Mechanize登录会重定向到主页?_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails 为什么在网站上使用Mechanize登录会重定向到主页?

Ruby on rails 为什么在网站上使用Mechanize登录会重定向到主页?,ruby-on-rails,ruby,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 = me

我正在尝试使用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。

铁皮人我找到了Mozilla的完整ID,但我遇到了同样的问题,当我在密码中不写任何东西时,我会得到错误的密码或登录,但当我写密码时,我什么也没有得到

我已经改进了我的代码

agent=Mechanize.new{| a | a.log=Logger.newMechanize.log} agent.read\u超时=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

你被重定向的原因可能有很多。您正在尝试设置用户\u代理\u别名,但如果您尝试设置,则该签名不太现实。我尝试在没有用户\u代理\u别名的情况下进行此操作,但收到相同的错误。我无法连接如果您使用的是Mozilla为Windows或Linux浏览器发送的内容的精确副本,会发生什么?无法保证问题是否存在,但是如果字符串匹配不够好,一些站点会拒绝连接。如果我尝试使用..alias=Mac Safari或Linux Firefox,我会得到相同的错误,但是如果我使用login\u field=login\u form.field\u with name:login.value=zyriuse password\u field=login\u form.field\u with name:password.value=没有密码,我会得到无效的登录名或密码,如果写密码,我什么也得不到上面的代码正在工作。我不知道为什么每次运行此脚本时都会收到错误的cookie