Successfully reported this slideshow.
10.000 вариантов
 снять квартиру
  или сам себе
  POE-риелтор
Вид каталога
Идентификатор
Подробная информация
Паук на POE
и драйверная система
Структура драйвера
{
    name           => 'landlord',
    url            => sub { ... },
    url_details    => sub { ... ...
3 функции для разбора
     собранных страниц
parsers => {
      count   => sub { ... },
      details => sub { ... },
    ...
2 Функции
   для генерации ссылок

url           => sub { ... },
url_details   => sub { ... },
Драйвер готов!
Основные этапы
    работы
1. Инициализация
 Определение количества страниц
 каталога
2. Сбор каталога
  Сбор страниц по подготовленным
 ссылкам
3. Анализ собранных объектов
 Сравнение объектов в нашей БД и в
 каталоге-источнике
4. Сбор подробной информации по
 новым объектам
Необычный поиск
• Получить идентификатор с
  помощью LWP::UserAgent
• Генерировать ссылки с

  использованием идентификато...
Ошибки в каталогах
POE::Component::Client::Keepalive
           v 0.25
Сервера риелторов не выдерживали
            нагрузок




  Apache + CGI = 5 запросов одновременно
Маленькие радости



Отдельное “спасибо” разработчикам,
 сделавшим параметр «количество
      объектов на странице»
Полуавтоматический режим



     Меняется представление
информации, необходимо постоянно
   поддерживать работу пауков
Спасибо за внимание!


Константинов Дмитрий
  RostovOnDon.pm
10.000 вариантов снять квартиру или сам себе POE-риелтор
Upcoming SlideShare
Loading in …5
×

10.000 вариантов снять квартиру или сам себе POE-риелтор

800 views

Published on

YAPC Russia 2009 "May Perl 2"

Published in: Technology
  • Be the first to comment

10.000 вариантов снять квартиру или сам себе POE-риелтор

  1. 1. 10.000 вариантов снять квартиру или сам себе POE-риелтор
  2. 2. Вид каталога
  3. 3. Идентификатор
  4. 4. Подробная информация
  5. 5. Паук на POE и драйверная система
  6. 6. Структура драйвера { 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 { ... }, }, }
  7. 7. 3 функции для разбора собранных страниц parsers => { count => sub { ... }, details => sub { ... }, items => sub { ... }, },
  8. 8. 2 Функции для генерации ссылок url => sub { ... }, url_details => sub { ... },
  9. 9. Драйвер готов!
  10. 10. Основные этапы работы
  11. 11. 1. Инициализация Определение количества страниц каталога
  12. 12. 2. Сбор каталога Сбор страниц по подготовленным ссылкам
  13. 13. 3. Анализ собранных объектов Сравнение объектов в нашей БД и в каталоге-источнике
  14. 14. 4. Сбор подробной информации по новым объектам
  15. 15. Необычный поиск • Получить идентификатор с помощью LWP::UserAgent • Генерировать ссылки с использованием идентификатора
  16. 16. Ошибки в каталогах
  17. 17. POE::Component::Client::Keepalive v 0.25
  18. 18. Сервера риелторов не выдерживали нагрузок Apache + CGI = 5 запросов одновременно
  19. 19. Маленькие радости Отдельное “спасибо” разработчикам, сделавшим параметр «количество объектов на странице»
  20. 20. Полуавтоматический режим Меняется представление информации, необходимо постоянно поддерживать работу пауков
  21. 21. Спасибо за внимание! Константинов Дмитрий RostovOnDon.pm

×