【问题标题】:How to download files from URL not displaying the filename using perlscript [closed]如何使用 perlscript 从不显示文件名的 URL 下载文件 [关闭]
【发布时间】:2013-11-11 18:29:32
【问题描述】:

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

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

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

【问题讨论】:

    标签: perl download


    【解决方案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>
    

    编辑

    抱歉,忘记了第二部分。要进行下载,您需要使用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");
    

    【讨论】:

    • 但是如果我不知道文件名怎么办?或文件的文件类型。另外,如何指定保存文件的位置?
    • 我找到了一个如何找到文件名here的示例。您必须检查其中一个标题。您可以使用 $file 变量指定保存文件的位置。我将更改代码以显示示例。
    • 文件名不显示也不保存文件
    • 我不太了解 perl,但可以从该标题中找到文件名。试试this page 的示例,看看是否对您有帮助。
    猜你喜欢
    • 1970-01-01
    • 2017-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-22
    • 2020-02-16
    • 1970-01-01
    • 2017-10-19
    相关资源
    最近更新 更多