В настоящее время скрипт парсинга объявлений больше не работает по следующим причинам:
- Avito окончательно заблокировал ip-адрес хоста, на котором размещен мой сайт
- При попытке настроить парсинг через прокси сервер возникли проблемы
- Загрузка через proxy слишком медленная
- Работа через proxy часто не стабильна и их придется менять, что сильно усложнит сам скрип, ведь для этого сначала придется распарсить список free proxy
Бизнес-идея
Из-за отстуствия стабильности в доходах я решил попробовать заработать на перепродаже компьютерной техники, но открывать браузером вручную доски объявлений в интернете и выбирать на страницах подходящие объявления мне показалось скучным и неинтересным. Так возникла идея автоматического парсинга объявлений.
Для начала я решил разобрать avito.ru. Изучив структуру сайта стало понятной следующее:
- Все новые объявления появляются на главной странице в соотвествующей категории , значит мне надо парсить именно эти страницы.
- Каждое объявление имеет свой уникальный адрес url, таким образом можно решить проблему повторов при следующем переобходе страницы категории
- Ссылку на url, заголовок, цену и компанию продавца можно получить распарсив страницу с категорией, а вот чтобы получить описание товара и продавца надо еще обойти и распарсить страницу объявления.
Реализация
Структура страницы avito оказалась понятной, написать скрипт парсинга не заняло много времени. По ссылке можно посмотреть отрывок, как может быть реализован парсинг авито на php. При этом в скрипте используются самые простые фунции php file_get_contents, str_ps, substr, и нет регулярных выражений или curl.
Алгоритм работы скрипта заключается в непрерывном (пока не закончится страница) поиске тегов-заголовков объявлений в html-коде страницы категории. В теле объявления присутствую теги цены, компании и ссылки на объявление, которые парсятся как показано в примере. Для получения описания и продавца в цикле загружается парсится страница объявления.Далее я решил протестировать скрипт. Как оказалось, если за один проход скрипта загружать большое количество страниц с описанием avito выкинент ошибку как на рисунке с просьбой пройти каптчу.

Результаты
Результаты работы скрипта вы можете посмотреть на этом сайте
Примерно за месяц работы скрипт распарсил 8165 объявлений, из них:
- Частные - 5672
- Компании и магазины - 2493
- Ноутбуки - 1603
- Планшеты - 762
- Телефоны - 5800
Выводы
Меня больше интересовали ноутбуки и даже попадались реальные предложения, но таких было мало 3-5 за месяц. Как раз в эту категорию магазины и компании подавали объявления чаще всего, частных объявлений них было только 538
Часто частные продавцы работали как магазины и у них было по 10 и более открытых объявлений. Очень часто продавали ноутбуки по магазинным ценам и иногда выше, писали что ноут игровой и т.п.
В итоге я решил отказаться от идеи заработать на перекупе, возможно в другой категории (автомобили или недвижимость) дела обстоят лучше, но это не моя область.
Преимущества парсинга
- Просматривать распарсенные объявления гораздо удобней чем на самом avito, страница без картинок и рекламы загружается быстрее
- Объявления сортируются попорядку убывания даты (новые сверху), а не идут вперемешку как на самом avito, где наверх поднимаются проплаченные
- Легко улучшить скрипт, нет необходимости самому просматривать доски, можно настроить оповещение на e-mail при наличии новых объявлений, включить в скрипт дополнительные фильтры
Очень жаль что тебя заблокировали. Avito - собаки бешеные!!! Загружал то максимум 12 страничек за 5 минут. Долго твой парсиг работал, почти год.