Май 23

Внезапный парсинг крупнейшего украинского сайта объявлений

Категория: Парсинг сайтов | Опубликовано: 23-05-2017

Предыстория написания парсера такова.

На одном украинском сайте объявлений (сайт с трехбуквенным именем, кстати, довольно мощный, является аналогом российского сайта Slando.ru)  я как-то размещал объявление о продаже ненужной всячины. Указал номер телефона, по которому можно со мной связаться. Указал и указал, ничего особенного. Через несколько дней вечером получаю SMS-сообщение приблизительно в таком тоне: «Здравствуйте, %моё имя%! Мы супер-пупер компания, занимающая веб-дезигном, заказывайте сайты у нас. Наши поезда самые поездатые поезда в мире! тел. XXX-XXXXXХХ«.

Телефон мой, имя моё. Странно. Откуда?
Позвонил по номеру. Спрашиваю вежливым, но недобрым голосом:

- «Это та самая-супер-пупер компания?»

— «Ну да, это мы» — отвечает человек невеселым голосом

- «Мне тут SMS от вас пришло. Что это за спам рассылка?»

— «Ну …это не спам рассылка, это у нас информирование такое»

- «А вообще откуда у вас информация о номере и о том как зовут абонента?»

— «Из интернета взяли»

- «Вычеркните меня и не присылайте больше никаких сообщений»

— «Извините, пожалуйста, вычеркнем» (и голос такой невеселый-невеселый, видать, я не первый звоню, да и время позднее)

Посидел, подумал и вспомнил, где я свой номер вместе с именем «засветил». Да на сайте же объявлений о купле/продаже всякой всячины. Вот же, думаю, говнюки какие! Пропарсили сайт, выдернули имена и контактный телефон и заказали рассылку спама.

Стало интересно, как там, на сайте все устроено. А на сайте, при просмотре объявления, контактное имя видно сразу, а вот сам телефон закрыт крестиками. По клику на него JS-скрипт отрабатывает и подгружает телефонный номер.

Дай думаю парсер телефонов напишу, раз эти «спамеры-дезигнеры» смогли, чем я хуже?)))

Как обычно — накидал древовидную табличку групп объявлений (с URL-ками и идентификаторами ID/PARENT_ID). Поскольку при поиске объявлений на искомом сайте можно подключать фильтр в виде региона — набросал еще одну табличку для регионов (парсил только по Донецку, но вообще можно было и отдельно по районам города парсить).

nee_parser_groups_and_city

Дальше программно прошелся по всем группам с фильтром на город, получил URL-ки самих объявлений. Т.к. обявления обычно не помещаются на одной странице, добавил выкачку остальных страниц и парсинг объявлений на них. Все URL-ки объявлений загнал в отдельную таблицу/грид — получилось 72211 объявлений (по указанному городу).

Затем пришлось повозиться с телефонными номерами. Думал разобраться в исходном коде, но там такой спагетти-код из JS-скриптов с вложенностью вызовов как у матрешек. Плюнул, сделал проще и по-другому, в результате вытянул номера.. Уникализировал, т.к. один и тот же контакт может создать несколько объявлений и получил 28573 уникальных контакта (имя + телефон)

nee_parser_adv_and_tel

Можно было, конечно, еще и формат номера привести к единому стандарту, убрать круглые скобки, убрать, там где он есть, код страны… Но уже было лень.

Парсер контактов был написан ради проверки своих возможностей.

Контактную базу номеров продавать не буду, ибо спам это зло. А вот заказы на целевой парсинг объявлений — принимаются.

 

Оставить комментарий