2017-09-01 4 views
2

基本的にはこれをやっていました。フォームデータを渡した後にRubyを使ってWebページの本体を取得する方法

require "rest-client" 
url="example.com" 
test=RestClient.get(url) 

しかし、このWebページでは認証手順が設定されています。正しいパスワードを入力するとPAGE Aに行きます。それ以外の場合はPAGE Bに行きます。私の質問は、IDとパスワードを使用してログインする方法です。あなたはそのページを次のように考えることができますthis one here

私はスクリプトを使用してクレデンシャルを入力し、ログインしているかどうかを調べます。

編集:私は、ユーザー名とパスワードを渡すん方法を知りたいと私は、ログインボタンをクリックした後、開いたページのURLを知りたいの簡素化。

これはハイジャックの試みではありません。私はこれができるかどうかを知りたいだけです。私が与えたウェブサイトはほんの一例です。

+0

私はあなたがそうすることはできないと思います。投稿クエリを使用します。 Googleのログインを無差別に強制するのと同じですが、毎回無制限の試行回数と同じ結果が表示されます。 – Sankalp

+0

'機械化'宝石を見てください。フォームと対話するのに役立ちます。 http://docs.seattlerb.org/mechanize/EXAMPLES_rdoc.html –

答えて

1

実際に行うことはできますが、この解決法はあまり正確ではないと言えます。

RestClient.post(url_from_the_form, { login: 'foo', password: 'bar' }) 

そして:あなたはそのような何かを行うことができますので、あなたは、アクションフィールドaction="/registration/chooseAuth.do;jsessionid=73f8323730d5704b00f173314aaeaad2de767c0c0c42.e34Nb38TbhaTbO0Tc34Sbx0Obhv0n6jAmljGr5XDqQLvpAe"

これでformタグを見つけることができます提供してきましたリンクページ

は、実際の認証へのリンクありそれはうまくいくかもしれませんが。あなたがしていることは、WebスクレイピングまたはWebクローリングと呼ばれています。そのために、より適しているツールがあります。

Mechanize(最も簡単な1) Capybara + Selenium WebDriver

Mechanizeのは、むしろ簡単なWebページのための素晴らしい作品。より多くのAJAXやSPAになると、あなたはCapybara + Seleniumを選ぶ方がよいでしょう。

+0

フォームからURLを取得するにはどうすればよいですか? – Rishav

+0

HTMLページのコンテンツを開き、 'form'タグとそのタグの' action = 'フィールドにあるURLを見つけることができます。 – nattfodd

+0

'/ registration/checkTime.do'は有効なURLなので? 'form'タグの' action = 'フィールドの後にありました。 – Rishav

関連する問題