Главная > IT, perl > Perl: simple download manager [step 1]

Perl: simple download manager [step 1]

Привет

Не так давно, у меня возникла потребность «просить» домашний компьютер выкачивать файлы. Ставить скачивание в очередь с расписанием (скорость даунлоада после 4-5 утра в сети выше :) как бы то ни было странно). GUI’шный планировщик задач не подходил… т.к. порой надо было начать загрузку с работы. Решился сделать простой даунлоад менеджер с WEB интерфейсом.

Кому интересно, может следовать за мной, шаг за шагом :) и так-с, начнём.

А начнем мы с обзора перлового модуля, LWP::UserAgent, это самый важный для этой задачи модуль.

LWP::UserAgent

Полную информацию по этому модулю можно найти конечно же на cpan.org, а здесь я приведу основные моменты, которые нужно учесть.

Итак, простой пример использования -


1. use LWP::UserAgent;

2. my $ua = LWP::UserAgent->new;

3. $ua->timeout(10);
4. $ua->env_proxy;
5. my $response = $ua->get('http://search.cpan.org/');

6. if ($response->is_success) {
7. print $response->content; # or whatever
8. } else {
9. die $response->status_line;
10. }

здесь кажется всё просто -

  1. подключаем модуль
  2. создаём объект
  3. устанавливаем таймаут ожидания в 10 секунд
  4. используем прокси определённые в *_proxy переменных окружения
  5. запрашиваем страницу методом GET, и получаем результат в виде объекта HTTP::Response
  6. если результат «положительный» (200 <= status-code <= 299), то ...
  7. печатаем контент
  8. если же нет, то …
  9. пишем ошибку

Собственно всё. Примерно так и будет работать наш скрипт.

Советую всё же почитать про LWP::UserAgent более подробно, например здесь.

Google Bookmarks Digg Reddit del.icio.us Ma.gnolia Technorati Slashdot Yahoo My Web News2.ru БобрДобр.ru RUmarkz Ваау! Memori.ru rucity.com МоёМесто.ru Mister Wong

1 звезда2 звезд3 звезд4 звезд5 звезд (Еще не оценили)
Loading ... Loading ...

Categories: IT, perl Tags: Internet, IT, perl
  1. Пока что нет комментариев.
  1. Пока что нет уведомлений.
Необходимо войти на сайт, чтобы написать комментарий.