-1

我是 perl 脚本的新手,我目前正在构建一个 perl 脚本,它将从 URL 下载文件。但是文件名不会显示在 URL 中,如下面的示例 URL:

http://www.filehippo.com/download_ccleaner/download/c35606d3b96a03d7941f656b50923c09/

如何使用 perl 脚本下载文件并将其保存到我的本地文件夹(例如 c:\desktop\files)?另外,如何绕过IE中的下载窗口并自动将其保存在我的本地文件夹中?(打开,保存或取消窗口)

4

1 回答 1

1

看起来如果您单击下载符号该页面上的下载符号,该文件将立即下载。我认为您应该从 perl 下载的 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>

编辑

抱歉,忘记第二部分了。要进行下载,您需要使用此处描述的方法:

#!/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");
于 2013-11-11T18:41:59.947 回答