2012-03-02 3 views
0

Я пытаюсь использовать Mechanize Ruby для входа на сайт. Я рассматривал каждый пример этого сайта, но начинал рубинов и путался о том, какую страницу я должен получить, чтобы получить доступ к форме.Проблема с рубином Mechanize

Вот код у меня есть:

require 'rubygems' 
    require 'logger' 
    require 'mechanize' 

    agent = Mechanize.new 
    home_page = agent.get('http://www.quora.com') 
    login_form = home_page.click.form('login') 

    # with email and password variables properly set 
    login_form.set_fields(:session_key => 'email', :session_password=> 'password') 
    return_page = agent.submit(login_form, login_form.buttons.first) 

Но это возвращающий следующую ошибку:

forge.rb:7: undefined method `click' for #<Mechanize::Page:0x1018592b8> (NoMethodError) 

Как вы пиковая за страницу, чтобы посмотреть на того, содержит ли страница форму?

Также, любая идея, как исправить код?

+0

http://stackoverflow.com/questions/17471579/trying-to-login -to-quora-using-mechanize Этот комментарий может рассказать вам, почему ваш код не работает –

ответ

0

Я считаю, что это должно работать:

require 'rubygems' 
require 'logger' 
require 'mechanize' 

agent = Mechanize.new 
home_page = agent.get('http://www.quora.com') 
login_form = home_page.forms.find { |form| form.fields.map(&:name).include? 'email' } 

login_form.set_values :email => 'email', :password => 'password' 
return_page = login_form.submit 

я не видел session_key и session_password поля на quora.com

+0

Привет. Спасибо за ответ. Я заменил set_values ​​на set_fields во второй до последней строки, и я получил ошибку 500 => Net :: HTTPInternalServerError (Mechanize :: ResponseCodeError). Это серверная сторона, поэтому я попытался настроить useragent явно с помощью agent.user_agent. Есть ли что-нибудь еще, что я могу попробовать? – user1238490

+0

Также, как вы узнали, что поля session_key и session_password отсутствуют на quora.com? Где вы можете это изучить? – user1238490

Смежные вопросы