1

LWPの使用に関する記事を調べましたが、それでも迷っています。このサイトには多くの学校のリストがあります。概要ページを参照し、いくつかのリンクをたどって、いくつかの結果ページを取得します。

LWP :: UserAgentを使用してサイトを解析し、解析にはHTML :: TreeBuilder::XPathまたはHTML::TokeParserのいずれかを使用したい

現在、私は正しいget-requestを選択することを考えています!LWP::Useragentに問題があります。概要のサブサイトには、直接リンクからアクセスできます。ただし、注:各サイトにはコンテンツがあります。たとえば、上記の結果ページの次のURL。

ここの初心者として、完全なURLを投稿して、さまざまなエンディングのエンディングを表示することはできませんが、ここでエンディングを確認できます。

id=21&extern_eid=709
id=21&extern_eid=789
id=21&extern_eid=1297
id=21&extern_eid=761

URLの末尾が異なる多くの異なるURLがあります。問題は、LWP::UserAgentを実行する方法です。フェッチして解析したい&**すべての-1000サイト**

質問; LWPは自動的に仕事をしますか!?または、LWP :: UserAgentを設定して、別のURLを自動的に検索するようにする必要がありますか...

解決策:おそらく、フォーム0から10000までカウントアップする必要があります

extern_eid = 709-(0から100000までカウント)ここ

www-db.sn.schule.de/index.php?id=21&extern_eid=709

ところで:ここにLWPユーザーエージェントのデータがあります。

リクエストメソッドこのセクションで説明するメソッドは、ユーザーエージェントを介してリクエストをディスパッチするために使用されます。次のリクエストメソッドが提供されています。

$ ua-> get($ url)$ ua-> get($ url、$ field_name => $ value、...)

このメソッドは、指定された$urlにGETリクエストをディスパッチします。リクエストのヘッダーを初期化するために、さらに引数を指定できます。これらは別々の名前/値のペアとして与えられます。戻り値は応答オブジェクトです。提供されるインターフェースの説明については、HTTP::Responseを参照してください。LWPがURLで指定されたサーバーに接続できない場合、またはプロトコルハンドラーで他​​の障害が発生した場合でも、応答オブジェクトが返されます。

問題は、上記のサイトでLWP :: UserAgentを正しい方法で使用する方法です-効果的に!?

私はすべての助けを楽しみにしています!

4

2 に答える 2

0

Web スクレイピングを目的として、次のリンクを記述します。LWP サブクラスWWW::Mechanizeは、現在の試行よりも簡単にこれを行います。

于 2010-10-23T14:22:45.937 に答える
0

私があなたの質問を正しく理解していれば、LWP::UserAgent を同じ URL で異なるクエリ引数で使用しようとしていて、LWP::UserAgent がクエリ引数をループする方法を提供しているかどうか疑問に思っていますか?

LWP::UserAgent にはそれを行う方法がないと思います。ただし、URL を作成するループを作成して、LWP::UserAgent を繰り返し使用することはできます。

for my $id (0 .. 100000)
{
    $ua->get($url."?id=21&extern_eid=".(709-$id))
    //rest of the code
}

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

于 2010-10-22T23:11:22.263 に答える