我不是Perl专家,但我已经写了一个Perl脚本所有href
标签来解析HTML页面和过滤:如何从Perl中的HTML页面上的链接中提取文本?
输出如下所示:
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>
现在我想从“00:00:00”到“23:00:00”提取href标签内的值,同时排除其他值。通过尝试下面的代码
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/
我应该我的正则表达式是这样的结果值将被添加到字符串有一个网址要求的目标可以实现?
对不起,你可以提供什么,我应该使用的情况下在while循环 - 我在程序中出现错误。如果你可以像上面例子那样使用@tag变量会很有帮助 – Prakash
我使用了'DATA',这样我就可以将示例数据包含在Perl源代码中。我已经修改了我的解决方案,以便在处理它之前将数据读入'@ tag',如您所请求的 – Borodin