Как правильно покупать на AVITO

Каждый из нас наверняка имеет некие желания, однако тратить на них лишние деньги не всегда представляется возможным. Так и случилось со мной. По роду своей профессиональной деятельности мне приходиться по 8-12 часов в день находиться за компьютером. Чтобы повысить скорость работы и уровень комфорта пришлось задумываться о приобретении второго монитора. Несколько месяцев, вынашивая эту идею, мне стало понятно, что максимальную сумму, которую можно выделить на покупку монитора составляет 1000 рублей. К приобретению планировалось широкоформатное устройство диагональю не менее 19 дюймов с TFT матрицей, обладающей яркостью не менее 300 кд/м2 и минимальным временем отклика не более 5 мс. Конечно же, монитор должен быть в рабочем состоянии, не сильно убитым и обладать максимально возможным разрешением для этой диагонали.

Найти новый монитор за такую цену практически невозможно, минимальная планка на товар такого рода в магазинах моего города находится в районе 3000 рублей, поэтому решение о покупке устройства бывшего в употреблении пришла сама собой. В качестве площадки для воплощения своей мечты я выбрал AVITO. Несколько дней просматривая объявления незнакомых мне людей, понял, что мир сошел с ума. За монитор, служивший верой и правдой 5 лет, некоторые пользователи просят 4000 рублей. Прочитав такое объявление, хочется громко выругаться, но переборов возмущение, я решил позвонить Кате – обладательнице дорогого мамонта Samsung SyncMaster 940N.

Девушка оказалась с приятным голосом. Свою позицию она держала четко, объясняя ценообразование лишь тем, что в далеком 2008 году этот монитор был куплен за 11 тысяч рублей. Тот факт, что сейчас Катя просит 4000 рублей, с её слов, большой подарок для меня – ведь не каждый день можно купить вещь со скидкой более чем 50%. Увы, моего обаяния и доводов хватило лишь на то, чтобы получить незначительную скидку. Конечная цена меня не устроила, но это не помешало нам подружиться.

Вместе с тем, на AVITO были и по-настоящему выгодные предложения, но купить по ним ничего не мог. К моменту, когда я замечал интересный лот – он уже был куплен более ушлым человеком. Тогда было решено подойти к вопросу с технической точки зрения. Чтобы опередить конкурентов пришлось накидать небольшой скрипт на PHP, который я поместил в качестве задания планировщику Cron. Скрипт выполнялся каждые 5 минут, проверяя наличие интересующего меня товара.

Для правильной работы скрипта нам понадобятся модули MySQL и CURL для PHP. Предварительно у Вас должна быть подготовлена база данных, в неё помещаем таблицу avito, создать которую поможет файл install.php. Чтобы установочный скрипт получил доступ к БД необходимо заполнить Ваши учетные данные, внеся их в первые три строчки файла: имя пользователя БД (переменная $dbuser), пароль от БД (переменная $dbpassword) и базу данных по умолчанию (переменная $default_db). Если после запуска install.php, Вы увидите надпись «База для скрипта avito.php успешно создана», то можно переходить к следующему этапу.

Теперь нужно определиться с тем, что мы будем покупать. Допустим нам надо найти монитор, для этого переходим на сайт www.avito.ru, выбираем город для поиска, вводим строку, отмечаем галочкой пункт «искать только в названиях» и нажимаем на кнопку «Найти». Эти манипуляции мы проделывали, чтобы получить строку для поиска, которая нам пригодится в дальнейшем.


Все подготовительные операции выполнены, и можно переходить к конфигурации основного скрипта avito.php. Сделать это очень просто, т.к. параметры необходимые для правильной работы вынесены в начало файла (первые шесть констант). Подробно разбирать каждый параметр не буду, только в качестве примера приведу их ниже по тексту.

Фрагмент скрипта avito.php
define ("dbuser",""); // Имя пользователя БД
define ("dbpassword",""); // Пароль для доступа к БД
define ("default_db",""); // База данных по умолчанию
define ("search_str","http://www.avito.ru/kazan?name=%D0%BC%D0%BE%D0%BD%D0%B8%D1%82%D0%BE%D1%80&bt=1 "); // Строка для поиска 
define ("from_mail",""); // почта от кого отправлять
define ("to_mail","79293866967@sms.ugsm.ru"); // адрес почтового ящика, куда будут отправляться уведомления

Итак, при первом запуске скрипта происходит наполнение таблицы avito данными с одноименного сайта, поэтому все пользовательские уведомления отключены. Лишь в случае повторного запуска, алгоритм проверяет появления новых товаров на сайте. Как только записи, соответствующие условиям поиска, обновятся, будет сформировано уведомление на указанный в настройках адрес электронной почты. Если Вы являетесь абонентом Мегафона, то у Вас есть возможность бесплатно подключить услугу получения SMS через e-mail (о том, как подключить услугу Вы можете уточнить в Call-центре по телефону 0500) и в качестве адреса указать e-mail вида 7ХХХХХХХХХХ@sms.ugsm.ru (где 7xxxxxxxxxx – номер сотового телефона абонента Мегафон-Урал). Данные мероприятия позволят бесплатно получать уведомления о новых товарах на телефон.

Существенным недостатком данного решения является то, что одновременно можно мониторить только один товар. Если одной безделушки Вам мало, то придется создавать в базе данных дополнительную таблицу и использовать еще одно задание для планировщика. Также отмечу, что после того, как нашли товар по душе и решили искать новый, Вам придется стереть содержимое таблицы avito в БД. Забыв очистить таблицу, Вы при первом запуске получите 50 уведомлений на адрес E-mail, указанный в настройках скрипта.

Расскажу о своих результатах. Спустя 2 дня после запуска мной был куплен монитор ViewSonic VX1940w всего за 1000 рублей. Продавцом оказался школьник, который был готов отдать этот монитор либо за деньги, либо за несколько лицензионных дисков для Sony PlayStation 3. С играми я не стал заморачиваться, поэтому обменял товар на деньги.


Уведомление об интересном объявлении было получено мной в 16:35 по местному времени, в 16:40 я уже переговорил с продавцом и на машине мчался на другой конец города. В 17:10 сделка была совершена. Столь удачная покупка сподвигла меня пойти дальше. Я нацелен был на покупку ноутбука, о котором мечтал еще со студенческой скамьи. Сразу скажу, что одного скрипта была мало. Пришлось применять приемы из психологии, немного подлога и везения, чтобы добиться нужного мне эффекта. Подробнее об этом расскажу в одной из следующих статей.

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

Ознакомиться с исходными кодами скриптов, описанных выше, можно перейдя по следующей ссылке (устарело).

Версия, использующая PHP Simple HTML DOM Parser, также доступна для скачивания. Данная ревизия актуальна на 18 ноября 2013 года. В архиве:
install.php - скрипт, создающий в БД таблицу с нужной структурой;
avito.php - собственно основной скрипт;
simple_html_dom.php - PHP Simple HTML DOM Parser.

Удачи в Ваших начинаниях!!!