ЗАКАЗ

Как можно распарсить доски объявлений на примере avito.ru и преимущества такого подхода

В настоящее время скрипт парсинга объявлений больше не работает по следующим причинам:

  1. Avito окончательно заблокировал ip-адрес хоста, на котором размещен мой сайт
  2. При попытке настроить парсинг через прокси сервер возникли проблемы
    • Загрузка через proxy слишком медленная
    • Работа через proxy часто не стабильна и их придется менять, что сильно усложнит сам скрип, ведь для этого сначала придется распарсить список free proxy

Бизнес-идея

Из-за отстуствия стабильности в доходах я решил попробовать заработать на перепродаже компьютерной техники, но открывать браузером вручную доски объявлений в интернете и выбирать на страницах подходящие объявления мне показалось скучным и неинтересным. Так возникла идея автоматического парсинга объявлений.

Для начала я решил разобрать avito.ru. Изучив структуру сайта стало понятной следующее:

  1. Все новые объявления появляются на главной странице в соотвествующей категории , значит мне надо парсить именно эти страницы.
  2. Каждое объявление имеет свой уникальный адрес url, таким образом можно решить проблему повторов при следующем переобходе страницы категории
  3. Ссылку на url, заголовок, цену и компанию продавца можно получить распарсив страницу с категорией, а вот чтобы получить описание товара и продавца надо еще обойти и распарсить страницу объявления.

Реализация

Структура страницы avito оказалась понятной, написать скрипт парсинга не заняло много времени. По ссылке можно посмотреть отрывок, как может быть реализован парсинг авито на php. При этом в скрипте используются самые простые фунции php file_get_contents, str_ps, substr, и нет регулярных выражений или curl.

Алгоритм работы скрипта заключается в непрерывном (пока не закончится страница) поиске тегов-заголовков объявлений в html-коде страницы категории. В теле объявления присутствую теги цены, компании и ссылки на объявление, которые парсятся как показано в примере. Для получения описания и продавца в цикле загружается парсится страница объявления.

Далее я решил протестировать скрипт. Как оказалось, если за один проход скрипта загружать большое количество страниц с описанием avito выкинент ошибку как на рисунке с просьбой пройти каптчу.

avito.ru блокирует ip-адрес когда за раз загружается большое количество объявлений
Для этого в скрипте установлены ограничения: MAX_SUSS_CNT, MAX_TOTAL_CNT. В результате работы скрипт выведет текст объявлений - ассоциативный массив $parseRD и логи работы - ассоциативный массив $parseLog. В случае ошибок скрипт сохранит проблемную страницу в папке $_SERVER["DOCUMENT_ROOT"] . "/parse-avito

Результаты

Результаты работы скрипта вы можете посмотреть на этом сайте

Примерно за месяц работы скрипт распарсил 8165 объявлений, из них:

  • Частные - 5672
  • Компании и магазины - 2493
  • Ноутбуки - 1603
  • Планшеты - 762
  • Телефоны - 5800

Выводы

Меня больше интересовали ноутбуки и даже попадались реальные предложения, но таких было мало 3-5 за месяц. Как раз в эту категорию магазины и компании подавали объявления чаще всего, частных объявлений них было только 538

Часто частные продавцы работали как магазины и у них было по 10 и более открытых объявлений. Очень часто продавали ноутбуки по магазинным ценам и иногда выше, писали что ноут игровой и т.п.

В итоге я решил отказаться от идеи заработать на перекупе, возможно в другой категории (автомобили или недвижимость) дела обстоят лучше, но это не моя область.

Преимущества парсинга

  • Просматривать распарсенные объявления гораздо удобней чем на самом avito, страница без картинок и рекламы загружается быстрее
  • Объявления сортируются попорядку убывания даты (новые сверху), а не идут вперемешку как на самом avito, где наверх поднимаются проплаченные
  • Легко улучшить скрипт, нет необходимости самому просматривать доски, можно настроить оповещение на e-mail при наличии новых объявлений, включить в скрипт дополнительные фильтры

Если вас интересуют парсеры досок объявлений, вы можете заказать написание парсера по по телефону или e-mail

Комментарии: 2Ответы: 1

  • Avatar
    towel
    2019-02-07 05:38:27

    Круто, бро. Давай еще распарсь и другие доски

    • Alexey Pichugin
      2019-02-07 05:42:15

      Пока не вижу в этом смысла, авито самая популярная доска объявлений в Иваново.

      Теоретичесми можно распарсить и барахолку ivbb.ru, но там другие категории

  • Avatar
    towel
    2019-11-28 04:56:24

    Очень жаль что тебя заблокировали. Avito - собаки бешеные!!! Загружал то максимум 12 страничек за 5 минут. Долго твой парсиг работал, почти год.