work.log

エンジニアの備忘録的ブログ

PerlのLWPでファイルをダウンロード

投稿:2013-07-22 17:37  更新:

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 の不思議な所です。

スポンサーリンク

コメント

コメントを残す

よく読まれている記事

  • 今日
  • 週間
  • 月間