0

現在、ページのデータを解析する方法を解決しています:http ://www.foundationfinder.ch/

私はPerlでそれをするのが大好きです:まあ-私は仕事をするための最良の方法であるとただ考えています。私は素晴らしい学習曲線の前にいると思います。;)このタスクは私にいくつかの素晴らしいPerlのレッスンを与えるでしょう。現時点では、それは私の頭の上に少し行きます...;-)

だからここにサンプルページがあります:

結果ページを見る

...そして、Id=0とId=100000の間の特定の範囲内で、790の結果ページすべてを見つけることができると思ったので、ループで道を進むことができると思いました。

http://www.foundationfinder.ch/ShowDetails.php?Id=11233&InterfaceLanguage3%Type=Html http://www.foundationfinder.ch/ShowDetails.php?Id=927&InterfaceLanguage=1&Type=Html http://www.foundationfinder。 ch / ShowDetails.php?Id = 949&InterfaceLanguage = 1&Type = Html http://www.foundationfinder.ch/ShowDetails.php?Id=20011&InterfaceLanguage=1&Type=Html http://www.foundationfinder.ch/ShowDetails.php?Id= 10579&InterfaceLanguage = 1&Type = Html

私はPerl-Wayに行くことができると思いましたが、よくわかりません。同じURL[以下を参照]で異なるクエリ引数を使用してLWP:: UserAgentを使用しようとしていたのですが、LWP::UserAgentがクエリ引数をループする方法はありますか?LWP::UserAgentにそれを行うためのメソッドがあるかどうかはわかりません。えーと、Mechanizeの方が使いやすいと時々聞いたことがあります。しかし、それは本当に簡単ですか!?

ところで; しかし、PHPの方法で行く場合は、Curlでそれを行うことができます-できませんでした!?

これが私のアプローチです:私はそれを理解しようとしました。そして、私はマンページとハウツーを深く掘り下げました。URLを構築するループを作成し、Curlを繰り返し使用することができます

上記のように:ここにいくつかの結果ページがあります。

http://www.foundationfinder.ch/ShowDetails.php?Id=11233&InterfaceLanguage3%Type=Html http://www.foundationfinder.ch/ShowDetails.php?Id=927&InterfaceLanguage=1&Type=Html

または、リクエストを送信する前に、クエリ引数を計算して追加するrequest_prepareハンドラーを追加することもできます。

繰り返しますが、目的は次のとおりです。データを解析し、その後、ローカルのMySQLデータベースに保存します。

extern_uidを定義する必要があります!?

そしてこのように行きます:

for my $i (0..10000) {
  $ua->get('http://www.foundationfinder.ch/ShowDetails.php?Id=', id => 21, extern_uid => $i);
  # process reply
}

さて、しかし今私は立ち往生しています-私は助けが必要です-私はこのような仕事をすることができますか!?

よろしく

4

1 に答える 1

3

このようにしないでください。HTTPライブヘッダー(Firefoxプラグイン)またはeqvを使用します。ここから(テーブルを使用して)そのページにアクセスするために必要なものを選択しながら、javasriptが舞台裏で何をするかを確認します。

テーブルからデータを取得するには、またはを使用するHTML::TableExtractHTML::TreeBuilder::XPath、XPathを使用する場合

クエリを繰り返し処理する場合は、別の変数を作成するだけです。

my $a = 'http://www.foundationfinder.ch/ShowDetails.php?Id=' . $q . '&InterfaceLanguage=&Type=Html';

移動しながら$qをインクリメントします。ページをロードする前に、ページが有効であることを確認してください。get

于 2011-05-15T12:51:22.293 に答える