Windows XPでPerlを実行しています。URL http://marinetraffic2.aegean.gr/ais/getkml.aspx からファイルをダウンロードする必要があります。
どうすればいいですか? WWW :: Mechanizeを使用しようとしましたが、頭を悩ませることはできません。
これは私が使用したコードです:
my $url = 'marinetraffic2.aegean.gr/ais/getkml.aspx';
my $mech = WWW::Mechanize->new;
$mech->get($url);
これには LWP :: Simple を使用します。
#!/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);
File :: Fetch を使用しました。これはコアPerlモジュールであるため(追加パッケージをインストールする必要はありませんでした)、インストールされているものに応じてファイルをダウンロードするさまざまな方法を試みますシステム。
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;
このモジュールは、インストールされている場合、実際には最初にLWPを使用しようとすることに注意してください...
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 );
これは実際、LWP::UserAgent->get
。
詳細は WWW :: Mechanize docs page で見つけることができます。
実際にそのファイルをダウンロードするだけでよい場合は、@ davorgの回答をお勧めします。
これがより大きなプロセスの一部である場合は、$mech
オブジェクトでメソッド content
を使用して、文字列としてダウンロードしたリソースにアクセスします。