我需要登录到一个站点来运行一些脚本。 Mechanize with Nokogiri 看起来非常适合这项任务,但我很难输入登录信息,因为输入字段不在表单中(agent.page.forms.first 产生 nil):
<div class="loginform" id="login_form">
<div>
<input type="text" id="loginname" tabindex="1"/>
</div>
<div>
<input type="password" id="password" tabindex="2"/>
<input type="text" id="password_text" style="display:none;"/>
</div>
<div class="signin"><a href="javascript:void(0);" class="sp" id="login_submit_btn"></a>
</div>
</div>
是否有可能以某种方式导航到输入元素(它们是页面上唯一的元素),然后提交我的用户名和密码以登录?如果 Mechanize 不能做这样的事情,还有其他选择吗?非常感谢。
最佳答案
我认为您最好在整个源代码(包括 javascript)中检查网站如何连接您。
在我看来,它应该是一个 HTTP POST 请求......并使用它直接登录而不通过 GET 请求解析主页,而是使用 Mechanize post method
反而 :
agent = Mechanize.new
url = 'http://website.com/hidden_login_page.php'
page = agent.post(url, {"login" => "foo", "password" => "bar"})
希望它也有帮助。
关于ruby-on-rails - 为不使用 Mechanize/Ruby 表单的站点输入登录信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7789210/