Ruby on rails 为什么在网站上使用Mechanize登录会重定向到主页?
我正在尝试使用Mechanize自动连接到一个网站 我在互联网上阅读和搜索,但我找不到任何解决问题的方法,这就是为什么在运行form.submit后,我返回主页的原因 我尝试连接时是否可以获取日志 我的代码: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 = 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