How do I download a file using Perl?

后端 未结 4 513
天涯浪人
天涯浪人 2020-12-23 10:14

I\'m running Perl on Windows XP, and I need to download a file from the URL http://marinetraffic2.aegean.gr/ais/getkml.aspx.

How should I do this? I have attempted u

相关标签:
4条回答
  • 2020-12-23 10:30
    use WWW::Mechanize;
    
    my $url = 'marinetraffic2.aegean.gr/ais/getkml.aspx';
    my $local_file_name = 'getkml.aspx';
    
    my $mech = WWW::Mechanize->new;
    
    $mech->get( $url, ":content_file" => $local_file_name );
    

    This in fact wraps around the LWP::UserAgent->get.

    More details can be found at WWW::Mechanize docs page.

    0 讨论(0)
  • 2020-12-23 10:31

    If downloading that file is all you actually do, you'd better go with @davorg's answer.

    If this is part of a bigger process, you access the ressource you downloaded as a string using method content on your $mech object.

    0 讨论(0)
  • 2020-12-23 10:44

    I used File::Fetch as this is a core Perl module (I didn't need to install any additional packages) and will try a number of different ways to download a file depending on what's installed on the system.

    use File::Fetch;
    my $url = 'http://www.example.com/file.txt';
    my $ff = File::Fetch->new(uri => $url);
    my $file = $ff->fetch() or die $ff->error;
    

    Note that this module will in fact try to use LWP first if it is installed...

    0 讨论(0)
  • 2020-12-23 10:55

    I'd use LWP::Simple for this.

    #!/usr/bin/perl
    
    use strict;
    use warnings;
    
    use LWP::Simple;
    
    my $url = 'http://marinetraffic2.aegean.gr/ais/getkml.aspx';
    my $file = 'data.kml';
    
    getstore($url, $file);
    
    0 讨论(0)
提交回复
热议问题