如何使用perlscript从URL中下载不显示文件名的文件

时间:2013-11-11 18:29:32

标签: perl download

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

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

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

1 个答案:

答案 0 :(得分:1)

如果您单击该页面上的download symbol下载符号,该文件将立即下载。我认为您应该从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");