実際の URL を把握する必要があります。
オプション 1a: 開発者のサポートが充実しているブラウザー (Web 開発ツールを備えた firefox など) でページを開き、ソースを調べて_doPostBack
が定義されている場所を見つけます。構築している URL を特定します。メインページのソースではなく、ページがロードするものに含まれている可能性があることに注意してください。
オプション 1b: 同上、ただし ruby に任せる。Net:HTTP を使用してページを取得している場合は、__doPostBack
すでに定義を見つけるためのツールがあります (文字列としての本体、Ruby の grep、スクリプト タグなどの追加ファイルを要求する機能)。
オプション 2: ブラウザーとページの間のトラフィックを監視して (ログ プロキシなどを使用)、URL を確認します。
オプション 3: Web ページの所有者に問い合わせます。
オプション 4: 推測します。これは思ったほど悪くはないかもしれませんが (たとえば、元の URL が "...?page=1" などで終わっている場合)、一般的にこれが機能する可能性は最も低くなります。
編集(他の質問に対するあなたのコメントに応じて):
Net:HTTP ライブラリを使用していると仮定すると、 yourget
をに置き換えるだけでポストバックを実行できます。post
my_http.post(my_url)
my_http.get(my_url)
編集(danieltalskyの回答に応じて):
watirはあなたにとって本当に良い解決策かもしれません (私はそれを考えていなかったので自責の念を抱いています) が、あなたが望むものを得るために手動でイベントを起動したり、他のフープを通過したりする必要があるかもしれないことに注意してください. 特定の問題として、このような非同期フェッチでは、スクレイピングする前に完全な応答が返されたことを確認する必要があります。自分でリクエストをインラインで実行している場合、それは問題ではありません。