The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Каталог документации / Раздел "Perl" / Оглавление документа

Программа, позволяющая скачивать и сохранять файлы с удаленного сервера

   #!/usr/bin/perl

   use strict;
   use LWP::Simple;

   my $url="http://www.server.ru/mp3/";
   my $dir="/path/to/your/mp3/dir";

   grep {getfile("$url$1.mp3") 
         if m!<A HREF="(.*?)\.mp3">!i} 
         split /\n/ => get $url;

   sub getfile{
     print "$_[0]\t=\tbegin...\n";
     print @{[head $_[0]]}[1],"\n";
     my $res = LWP::UserAgent->new->request(new HTTP::Request GET=> $_[0]);
     $_[0]=~s!.*/!!;
     if ($res->is_success) {
       open (ABC, ">$dir/$_[0]") or die "Can't create $dir/$_[0]: $!";
       binmode(ABC);
       print ABC $res->content; close ABC or die $!;
     } else {
       print $res->status_line;
     }
     return 1;
   }
конструкция
   grep {getfile("$url$1.mp3") 
         if m!<A HREF="(.*?)\.mp3">!i} 
         split /\n/ => get $url;
берет листинг директории(например без индексного файла) get $url, сплитит его по переводу каретки, возвращает массив, который в цикле перебирается и если есть линк на *.mp3, то подпрограмме передается адрес файла $url$1.mp3. В строке print @{[head $_[0]]}[1],"\n"; берется head, возвращающий массив и из него вытаскивается второй элемент, который является размером файла и затем выводится на печать.


Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру