0

私は初心者で、毎日さまざまなことを試し、何かに悩まされているときはいつもここに来ます。

次のリンクに移動するcurlとphpを使用してスクリプトを作成したいと思います:http://tools.cisco.com/WWChannels/LOCATR/openBasicSearch.do次に、各国の各ページを調べて、すべてのパートナーのリストをキャプチャします。国とそれをデータベースに保存します。

スクリプトが選択ボックスから国を1つずつ選択し、ページを国のページにリダイレクトする方法がわかりません...これが最初に行うことです。ページに入ると、名前とアドレスを格納するためのパターンマッチングが機能します。私が管理できるデータベース。

問題は、国のURLを選択する前に:: http://tools.cisco.com/WWChannels/LOCATR/BasicSearch.do であり、国を選択した後、「インド」のURLは次のようになります:http://tools.cisco.com/ WWChannels / LOCATR / performanceBasicSearch.do、選択された国への参照はありません。

私が持っていたアイデアは、HTMLページをトラバースし、すべての国を配列に入力してから、再帰関数を作成して特定の国のページを呼び出すことでしたが、そのためには、再帰関数で国ごとに異なるURLが必要ですか?

助けてください

4

2 に答える 2

2

あなたのURLがめちゃくちゃになっているので、あなたが話している正確なページを見ることができませんが、国を変更すると、ウェブサイトが次のような変数を使用して同じページにリクエストを送信している可能性があります(ただし、選択した国名/国IDの値を持つ他の何かである可能性があります。ページでソースを表示すると、渡されている入力フィールドの名前を確認できます。これを行うと、cURLリクエストを作成するときに、のcuRLオプションを設定できます。これは次のようになります。POSTcountryCURLOPT_POSTFIELDS

HTTP「POST」操作で投稿する完全なデータ。ファイルを投稿するには、ファイル名の前に@を付け、フルパスを使用します。これは、「para1 = val1&para2 = val2&...」のようなurlencoded文字列として、またはフィールド名をキーとして、フィールドデータを値として持つ配列として渡すことができます。

したがって、それを念頭に置いて、次のようなことを行います。

$ch = curl_init('http://tools.cisco.com/WWChannels/LO...BasicSearch.do');
$ch = curl_setopt($ch, CURLOPT_POSTFIELDS, array('country' => 'India'));
$ch = curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$contents = curl_exec($ch);
curl_close($ch);

しかし、私が言ったように、国=>その国の一部は、フィールドが通過する可能性があるものについての知識に基づいた推測です。HTMLを調べて、自分で調べる必要があります。

于 2009-04-21T02:38:10.843 に答える
1

自動化/スクレイピングについては、SimpleBrowserなどの仮想ブラウザーを使用することをお勧めします。これは SimpleTest の一部ですが、単独で使用できます。

于 2009-07-12T15:10:50.450 に答える