Post on 25-May-2015
description
10.000 вариантов снять квартиру или сам себе POE-риелтор
Вид каталога
Идентификатор
Подробная информация
Паук на POE и драйверная система
Структура драйвера{ name => 'landlord', url => sub { ... }, url_details => sub { ... }, types => { app_for_sale => 'flat', rent_flat => 'flat', house_for_sale => 'house', rent_house => 'house', }, connection_options => { keep_alive => 0, }, parsers => { count => sub { ... }, details => sub { ... }, items => sub { ... }, },}
3 функции для разбора собранных страниц
parsers => { count => sub { ... }, details => sub { ... }, items => sub { ... }, },
2 Функции для генерации ссылок
url => sub { ... }, url_details => sub { ... },
Драйвер готов!
Основные этапы работы
1. ИнициализацияОпределение количества страниц каталога
2. Сбор каталога Сбор страниц по подготовленным ссылкам
3. Анализ собранных объектовСравнение объектов в нашей БД и в каталоге-источнике
4. Сбор подробной информации по новым объектам
Необычный поиск
• Получить идентификатор с помощью LWP::UserAgent
• Генерировать ссылки с использованием идентификатора
Ошибки в каталогах
POE::Component::Client::Keepalivev 0.25
Сервера риелторов не выдерживали нагрузок
Apache + CGI = 5 запросов одновременно
Маленькие радости
Отдельное “спасибо” разработчикам, сделавшим параметр «количество
объектов на странице»
Полуавтоматический режим
Меняется представление информации, необходимо постоянно
поддерживать работу пауков
Спасибо за внимание!
Константинов ДмитрийRostovOnDon.pm