我是perl脚本的新手,我正在构建一个perl脚本,它将从URL下载文件。但文件名不会显示在URL中,如下面的示例网址所示:
http://www.filehippo.com/download_ccleaner/download/c35606d3b96a03d7941f656b50923c09/
如何使用perl脚本下载文件并将其保存到我的本地文件夹(例如c:\ desktop \ files)?另外,如何绕过IE中的下载窗口并自动将其保存在我的本地文件夹中?(打开,保存或取消窗口)
答案 0 :(得分:1)
如果您单击该页面上的下载符号,该文件将立即下载。我认为您应该从perl下载的URL是该图像的唯一URL。对于您提供的页面,例如
http://www.filehippo.com/download/file/cb316da24bb57e95894ed734de4455aa95865d6e56f8778ee37b9899455e333d/
从perl,您可以可靠地找到此链接,因为它以下列格式显示:
<div class="downloading">
<table>
<tr>
<td class="img">
<a href="/download/file/cb316da24bb57e95894ed734de4455aa95865d6e56f8778ee37b9899455e333d/">
<img alt="" src="http://cache.filehippo.com/img/download.png" />
</a>
</td>
<td>
<div class="downloadingTxt">Your program is now downloading
</td></div>
</tr>
</table>
</div>
对不起,忘记了第二部分。要进行下载,您需要使用here所述的方法:
#!/usr/bin/perl
use strict;
use warnings;
use LWP::Simple;
my $url = 'http://www.filehippo.com/download/file/cb316da24bb57e95894ed734de4455aa95865d6e56f8778ee37b9899455e333d/';
#get file name
my $ua = LWP::UserAgent->new();
$cnt = %{%{$ua->head( $url )}->{'_headers'}}->{'content-disposition'};
$cnt =~ m/filename=(.*)/;
print "File name is: $1\n";
getstore($url, "/path/to/file/$1");