2016-12-21 16 views
2

shodan.ioにボットでログオンしようとしていますが、動作しません。フォームを送信しようとするたびに、ログされずにウェルカムページに移動します。RUBY - Mechanize:ウェブサイトにログオンできない

私のコードは次のようである:彼らはユーザーエージェントをチェックしているよう

@agent = Mechanize.new 
@agent.log = Logger.new "mech.log" 
main_page = @agent.get('http://www.shodan.io') 
form_page = main_page.link_with(:href => "https://account.shodan.io/login").click 
form = form_page.form_with(:id =>'login-form') 
form.field_with(:name => 'username').value="User" 
form.field_with(:name => 'password').value="Pass" 
[email protected] form 

はあなたの助け

+0

正しいユーザー名とパスワードを使用していますか? – Codebeef

+0

また、 'main_page = @ agent.get( 'http://www.shodan.io')'に行く必要はありません。ログインページに直接移動してください。 – Codebeef

+0

確かに正しいパスワードを使用しています。ボディを表示してFirefoxで開くときに間違ったパスワードを使用すると、間違ったパスワードであることに気づいたページが表示されます – DevilBlues

答えて

2

OKいただきありがとうございます、見えます。次のように設定してください:

require 'mechanize' 

USERNAME = "<your username>" 
PASSWORD = "<your password>" 
USER_AGENT = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36" 

mechanize = Mechanize.new do |a| 
    a.user_agent = USER_AGENT 
end 

form_page = mechanize.get('https://account.shodan.io/login') 
form = form_page.form_with(:id =>'login-form') 
form.field_with(:name => 'username').value=USERNAME 
form.field_with(:name => 'password').value=PASSWORD 
page = form.click_button 

puts page.body 
+0

**ありがとうございます! – DevilBlues

+0

私は理由はわかりませんが、form.submitをform.click_buttonに更新すると私の問題は解決しました – user3707264

関連する問題