2012-03-02 9 views
0

機械化Rubyを使用してWebサイトにログインしようとしています。私はこのサイトのすべての例を見てきましたが、ルビの初心者であり、フォームにアクセスする必要があるページについては混乱しています。Rubyでログインできません機械化

ここで私が持っているコードです:

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にsession_keysession_passwordフィールドが表示されませんでした-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 

私はquora.com

+0

こんにちは。回答ありがとうございます。私はset_valuesをset_fieldsの2行目から最後の行に置き換えました。エラーは500 => Net :: HTTPInternalServerError(Mechanize :: ResponseCodeError)です。それはサーバー側なので、agent.user_agentを使って明示的にユーザーエージェントを設定しようとしました。私が試すことができる何か他にありますか? – user1238490

+0

また、session_keyフィールドとsession_passwordフィールドがquora.comに存在しないことをどのように知っていましたか?これをどこで調べることができますか? – user1238490

関連する問題