-1

フォームに埋め込まれていない「入力と同時に検索」検索バーを持つ Web サイトとの対話を自動化しようとしています。html の一部を次に示します。

<div id="search-box">
        <div class="form">
            <div class="input-outer">
                <div class="input-inner">
                    <input class="xblur" id="q" name="q" title="type to begin search" type="text" value="" />
                </div>
            </div>
            <div id="cancel" class="activated" title="Clear search">
            </div>
        </div>

私はフォームを扱うことができ、これまでのところスクリプトはうまくいっていますが、今は障害にぶつかっているようです...そのような場合、できればWWW::Mechanize(ただし、別のモジュールなどを使用して)検索を行うにはどうすればよいですか)?

お時間をありがとうございました!

4

2 に答える 2

1

ページでJSを実行する必要がありますか?Mozilla::MechanizeWin32::IE::Mechanize

于 2012-06-06T23:25:04.543 に答える
1

これに関するトラブルシューティングに関しては、Firebug プラグインを Firefox にインストールすることをお勧めします。検索フォーム ページに移動し、Firebug を有効にします。入力時に何が起こっているかを確認できるように、コンソール タブがアクティブになっていることを確認します。フォームを操作するときに GET または POST リクエストを監視することで、AJAX に関する限り何が起こっているかをよりよく理解できるはずです。

Firebug には、ソースを表示するためにクリックしてからページ要素を選択できる矢印アイコンもあります。これは、ページがロードされた後に作成されたフォーム要素の名前を取得するのに非常に便利です。

コンソールに表示されるリクエストをクリックして、返されたリクエストとレスポンスの両方を確認することもできます。この情報は非常に価値があります。

この情報を取得したら、検索フォームを通過する方法を決定できます。どのパラメーターが検索フォームに送信されているかを確認できる場合は、フォームに入力して機械でクリックするよりも、検索のターゲットに POST したほうがよいでしょう。

$mech->post( $url, { foo => 'bar', name => 'value' } );                                                                                                                                         
于 2012-06-07T02:01:50.453 に答える