ああ、私はまた別の質問があります。彼(私の上司)は、これらのリンクから読んで、それらのページのそれぞれからいくつかの詳細を取得し、その情報のすべてをxmlファイルに解析して、後で読むことができると主張します。向上LWP :: SimpleはPerlのパフォーマンス
だから、私はそうのようにかなり単純にこれを設定することができますこのページで多分5のリンクがあった場合
#!/usr/bin/perl -w
use strict;
use LWP::Simple;
require HTML::TokeParser;
$|=1; # un buffer
my $base = 'http://www.something_interesting/';
my $path = 'http://www.something_interesting/Default.aspx';
my $rawHTML = get($path); # attempt to d/l the page to mem
my $p = HTML::TokeParser->new(\$rawHTML) || die "Can't open: $!";
open (my $out, "> output.xml") or die;
while (my $token = $p->get_tag("a")) {
my $url = $token->[1]{href} || "-";
if ($url =~ /event\.aspx\?eventid=(\d+)/) {
(my $event_id = $url) =~ s/event\.aspx\?eventid=(\d+)/$1/;
my $text = $p->get_trimmed_text("/a");
print $out $event_id,"\n";
print $out $text,"\n";
my $details = $base.$url;
my $contents = get($details);
# now set up another HTML::TokeParser, and parse each of those files.
}
}
は、これはおそらくOKでしょう。しかし、私は〜600リンクから読み込み、これらのページのそれぞれから情報を取得しようとしています。だから言うまでもなく、私の方法は長い時間がかかります...私は正直なところ、どれくらいの時間がかかっているのか分かりません。
私は、必要に応じて情報を取得するだけのものを書くことを考えました(たとえば、必要なリンクから情報を参照するJavaアプリケーション)...しかし、これは受け入れられないようですだから私は皆さんに頼んでいます:)
このプロセスを改善する方法はありますか?
これは私が探していたものです。ありがとうございます。他の答えも有用でした。皆さんありがとうございました:) – Aelfhere
@Aelfhere、私はForkManagerの問題を解決する前に、それを削除する予定でした。 – ikegami