Perl モジュール LWP を使ってファイルをダウンロードするメモです。
スクリプトを書くなかでファイルをダウンロードしたくなる事があるので LWP::UserAgent を使って書いてみました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | #!/usr/bin/perl use strict; use warnings; use LWP::UserAgent; my $url = 'https://worklog.be/file.zip' ; my $file = '/tmp/file.zip' ; my $ua = 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)' ; my $timeout = '10' ; my $lwp = LWP::UserAgent->new( agent => $ua , timeout => $timeout ); ## コンテンツの取得 my $res = $lwp ->get( $url , ':content_file' => $file ); ## ダウンロード成功時 if ( $res ->is_success ) { print "success\n" ; ## ダウンロード失敗時 } else { print "error\n" ; } exit ; |
ちなみに、LWP を使わずに wget コマンドでやろうとするとこんな感じ。
my $url = 'https://worklog.be/file.zip' ; my $file = '/tmp/file.zip' ; `/usr/ local /bin/wget -O $file $url `; |
エラー処理はいれてないですがシンプルだし、動作的にもこっちのほうが早いと思います。
でも、モジュールの使い方を一度覚えると、以降はわざわざモジュールを介して処理させたくなるのが Perl の不思議な所です。