私はPerlの専門家ではありませんが、HTMLページを解析してすべてのhref
タグでフィルタリングするPerlスクリプトを作成しました。
出力は次のとおりです。
href="?Name">Name</a>
href="?Desc">Hourly Details</a>
href="/24x7/2012/11-November/">Data
href="./00:00:00/">00:00:00/</a>
href="./01:00:00/">01:00:00/</a>
href="./02:00:00/">02:00:00/</a>
href="./03:00:00/">03:00:00/</a>
href="./04:00:00/">04:00:00/</a>
href="./05:00:00/">05:00:00/</a>
href="./06:00:00/">06:00:00/</a>
href="./07:00:00/">07:00:00/</a>
href="./08:00:00/">08:00:00/</a>
href="./09:00:00/">09:00:00/</a>
href="./10:00:00/">10:00:00/</a>
href="./11:00:00/">11:00:00/</a>
href="./12:00:00/">12:00:00/</a>
href="./13:00:00/">13:00:00/</a>
href="./14:00:00/">14:00:00/</a>
href="./15:00:00/">15:00:00/</a>
href="./16:00:00/">16:00:00/</a>
href="./17:00:00/">17:00:00/</a>
href="./18:00:00/">18:00:00/</a>
href="./19:00:00/">19:00:00/</a>
href="./20:00:00/">20:00:00/</a>
href="./21:00:00/">21:00:00/</a>
href="./22:00:00/">22:00:00/</a>
href="./23:00:00/">23:00:00/</a>
ここで、hrefタグ内の値を「00:00:00」から「23:00:00」まで抽出し、他の値は除外します。結果の値は、URLを持つ文字列に追加されます。
http://x.download.com/00:00:00
------URL------------/..href../
..............................
http://x.download.com/23:00:00
ただし、以下のコードを試してみてください。
foreach (@tag) {
if (m/href/) {
if ($_ =~ /"\/24/ && $_ =~ /"\/[0-9]/) {
my $href = $_;
my $start = index($href, "\"");
my $end = rindex($href, "\"");
my $link = substr($href, $start + 1, $end - $start - 1);
print "Follow: " . $url . $link . "\n";
}
}
}
プリント:
Follow: http://x.download.com/24x7/2012/11-November/
必要な目的を達成できるように、私の正規表現は何である必要がありますか?