Perl - статьи


Пример использования модулей LWP и HTML::Tree


Дмитрий Николаев,

В статье речь пойдёт об использовании модулей и , причём сделано это будет на реальном примере, работу которого Вы можете посмотреть здесь: .

Сама идея написать скриптик - возникла после того, как встал вопрос о том, что раздел "книги" сайта - надоело дополнять/редактировать и т.д. вручную. Захотелось это дело автоматизировать, сделать поиск и т.д. Первая идея, которая возникла, - это было создание мини интернет-магазина, куда вносились бы книги и т.д. Но, это опять таки требовало присутствия человека. И тогда, я подумал, а почему бы не сделать скриптик, который бы скачивал нужную страницу с , парсил бы её, как мне надо, и передавал бы броузеру. Методом решения стали модули(пакеты модулей :)) и .

В данный момент скрипт выполняет следующее: при запросе - "смотрит в свой кэш" и в случае, если ничего там не находит, то производит скачивание нужной страницы с Озона, парсинг её и складирование в кэш + вывод броузеру... Естественно, при парсинге меняются некоторые ссылки, в частности ссылки перехода на следующую страницу результатов поиска и т.д.

Итак, давайте приступим к разбору кода:

1    #!/usr/bin/perl

2    use strict;

# далее грузим модули, которые нам понадобятся

3    use LWP;

4    use CGI;

5    use CGI::Carp qw(fatalsToBrowser);

6    use HTML::TreeBuilder;

7    use Lingua::DetectCharset;

8    use Convert::Cyrillic;

9    use URI::Escape;

10   my $flock_allow=1; # рарешать ли блокировку файлов

11   my $mainhost='http://perl.dp.ua'; # Ваш хост...

12   my $books_cache_dir = 'dir_for_cache'; # директория, в которой будут хранится кэшированные файлы

13   my $coi = new CGI;

14   print $coi->header(); # выводим заголовки

15   if(!(-d "./$books_cache_dir")){ # проверяем существование директории для кэш-файлов




Начало    Вперед