Perl - статьи


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


69         ); # Прикидываемся броузером

70     $page = razbor($response->content, $phrase); # razbor - это функция парсинга страницы с Озона, см. ниже

71     while (-e '$books_cache_dir/'.time().'.cache') { sleep(2); } #в случае, если файл существует(два пользовтеля одновременно запросили обновление или добавление), то немного "спим"

72     my $temp_time = time();

73     open(cache, ">$books_cache_dir/".$temp_time.'.cache'); # сохраняем информацию в файл

74     if ($flock_allow){lockfile('cache');}

75     print cache $page;

76     if ($flock_allow){unlockfile('cache');}

77     close(cache);

78     $cache[$i] = join('%unreal_delimiter%',$temp_time,$path, $coi->param('text'))."\n"; unlink($books_cache_dir.'/'.$temp_cache[0].'.cache'); # обновляем информацию, удаляем старый кэш

79     open(cache_list,">$books_cache_dir/list.cache"); # сохраняем список сохранённых страниц

80     if ($flock_allow){lockfile('cache_list');}

81     foreach my $string(@cache){

82      print cache_list $string;

83     }

84     if ($flock_allow){unlockfile('cache_list');}

85     close(cache_list);

86     last;

87    }

88   }

89   unless($page){ # производим новое добавление страницы, которая ранее известна скрипту не была

# Очень всё похоже на вышеописанный процесс обновления кэша, поэтому комментарии здесь излишни

90    my $browser = LWP::UserAgent->new();

91    my $response = $browser->get($path,




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



Книжный магазин