1

「open-uri」と「hpricot」の宝石を使用して何かをスクリーンスクレイピングするためのルビースクリプトを作成しました。これまでのところ、すべてがうまく機能しています。

しかし、今度は、フォームがjavascript関数(ドロップダウンメニューから「onchange」イベントハンドラーによって呼び出される)を介して送信された後に返されるものをスクリーンスクレイピングする必要があります。

function submit_form() {
  document.list.action="/some/sort/of/path";
  document.list.submit();
}

AFAIK、open-uriでは、GETリクエストのみを送信できます。そして、私が間違っていなければ、ここでPOSTリクエストが必要になります。

だから私の質問は:私は何をインストールして「要求する」必要があり、ルビーコードはどのように見えるでしょうか(そのPOSTリクエストを行うために)-申し訳ありませんが、私はまだほとんどn00bです...

ご助力ありがとうございます!

トム

4

2 に答える 2

2

間違いなくMechanizeを使用する必要があると思います。リモートページやフォームなどとやり取りするための気の利いたインターフェースを提供します (この例を参照してください)。

于 2011-06-05T08:25:09.513 に答える
0

Ruby 標準ライブラリにはhttp クラスがあり、これは当然 POST 操作をサポートします。

Net::HTTP.post_form(URI.parse('http://www.example.com/some/sort/of/path')

API が最適とは言えない場合は、httparty gemを見てください。

最後に、hpricot は優れた gem ですが、現在は積極的に開発されていません。hpricotを実質的に置き換えて改良したnokogiri への移行を検討する必要があります。

于 2011-06-05T08:52:24.347 に答える