2011-01-20 3 views
1

を渡す私はルビーでは、次の手順を構築する必要があります。
1.私は、ユーザーの\パスを入力する必要があり、特定のHTMLフォームがある中で、ウェブサイト
2のホームページを入力します。入力ボタン(例:html投稿)をクリックしてください
3.手順3の応答(html + login cookie)を取得します。
4.ログインCookieで多くのhtml取得要求を行います。ページ用)HTML GETユーザーのための確保ウェブサイト

ところで、私は

url = URI.parse('http://www.example.com/todo.cgi') 
req = Net::HTTP::Post.new(url.path) 
req.basic_auth 'jack', 'pass' 
req.set_form_data({'from'=>'2005-01-01', 'to'=>'2005-03-31'}, ';') 
res = Net::HTTP.new(url.host, url.port).start {|http| http.request(req) } 
case res 
when Net::HTTPSuccess, Net::HTTPRedirection 
    # OK 
else 
    res.error! 
end 
を試してみました

と動作しませんでした。

は、Webサイトの自動化されたアクセスのためのいくつかの優れたRubyの宝石がありますが、みんな

+0

これはなぜ「ruby-on-rails」タグを持っていますか? –

+1

Net:HTTPを使用して実行することは可能ですが、@ Fortuityの答えに従って[Mechanize](http://mechanize.rubyforge.org/mechanize/)を使用してください。それはちょうどこの種のもののために作られています。 –

+0

@the Tin Man:そうじゃない? :) –

答えて

4

ありがとうございます。

参照:

鋸山は、HTMLの構文解析のための最も人気のある逸品です。 Ryan Batesは素晴らしいscreencast on Mechanizeです。 Mechanizeは、Webサイトとの自動対話のためのRubyライブラリです。リンクをクリックしてフォームを送信します。

機械化を見てください。 Rubyライブラリを十分に文書化して、あなた自身で実装する作業を省くことができます。

+1

私はMechanizeを使うことを提案します。ページを簡単にナビゲートし、通常のセッションキーとCookieを処理します。 Nokogiriを使用して構築されているため、フォームとページ要素の検索に役立つ優れたパーサーがあります。それに取り組んでいるチームに勝つことはできません。彼らは自分のものを知っている。 –

+0

こんにちは、本当によかったよ、ありがとう –

+0

@Ode Regev、これが良い答えだと思うなら、これを選択するために、(上/下の票の下の)左のチェックマークをクリックすると良い答えです。 –

関連する問題