我开始在Perl中乱搞Web。我使用Windows和ActivePerl。我写了一个脚本,下载mp3文件(这是一个无线电话节目的存档,所有合法的,如果你想知道:))它(理论上)
但是脚本找到所有链接,数组没问题,但只下载一个文件。它必定是一个基本错误,但我找不到它。请指出我的错误,谢谢。
use strict;
use warnings;
use WWW::Mechanize;
use LWP::Simple;
use File::Basename;
my $mech = WWW::Mechanize->new( autocheck => 1 );
$mech->get("http://something_or_other.html");
my @mp3links = $mech->find_all_links(
tag => "a",
url_regex => qr/\.mp3$/,
);
print "\n";
foreach my $link (@mp3links) {
my $url = $link->url();
my $localfile = basename($url);
my $localpath = "d:\\Downloads\\$localfile";
print "$localfile\n";
getstore($url, $localpath);
}
答案 0 :(得分:0)
试试这个:
my $status = getstore($url, $localpath);
die "Error $status on $url" unless is_success($status);
另一个可能的罪魁祸首 - 如果链接包含查询字符串(?-mark + params) basename不会砍掉它。 问题是这会使窗口上的文件名无效。
答案 1 :(得分:0)
哦,对不起伙计们。这与Perl无关。我的互联网连接相当糟糕,连接总是在下载第一个文件时丢失。