我有一个我想从不同站点下载的 pdf 文件的 URL 列表。
在我的 Firefox 中,我选择了将 PDF 文件直接保存到特定文件夹的选项。
我的计划是在 perl 中使用 WWW::Mechanize::Firefox 来使用 Firefox 下载每个文件(在列表中 - 一个一个),并在下载后重命名文件。
我使用以下代码来做到这一点:
use WWW::Mechanize::Firefox;
use File::Copy;
# @list contains the list of links to pdf files
foreach $x (@list) {
my $mech = WWW::Mechanize::Firefox->new(autoclose => 1);
$mech->get($x); #This downloads the file using firefox in desired folder
opendir(DIR, "output/download");
@FILES= readdir(DIR);
my $old = "output/download/$FILES[2]";
move ($old, $new); # $new is the URL of the new filename
}
当我运行该文件时,它会在 Firefox 中打开第一个链接,然后 Firefox 会将文件下载到所需的目录。但是,在那之后,“新标签”没有关闭,文件没有被重命名,代码继续运行(就像它遇到了一个无限循环)并且没有进一步的文件被下载。
这里发生了什么?为什么代码不起作用?如何关闭选项卡并使代码读取列表中的所有文件?有没有其他的下载方式?