我正在尝试将automaticaly连接到使用机械化的网站。为什么使用网站上的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和机械化2.0.1。
有可能是任何数量的为什么你会被重定向的原因。你正试图设置一个'user_agent_alias',但是如果你想[模仿Mozilla]那个签名不太现实(https://developer.mozilla.org/en-US/docs/Web/HTTP/ Gecko_user_agent_string_reference)。 – 2014-10-17 15:51:52
我尝试没有user_agent_alias,我得到相同的错误。我无法连接 – user2912390 2014-10-17 16:28:45
如果您使用的是Mozilla为Windows或Linux浏览器发送的内容的完全副本,会发生什么情况?不能保证问题存在,但是如果字符串匹配不够好,某些站点会拒绝连接。他们不应该但他们这样做。 – 2014-10-17 17:47:22