Правда про парсинг сайтів, або «всі інтернет-магазини роблять це»

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

1. Що таке парсинг?

За визначенням парсинг – це автоматизований збір неструктурованої інформації, її перетворення та видача в структурованому вигляді. Досить невинно, чи не правда? Однак, суспільство ставиться до цього доволі своєрідно, як до підліткової мастурбації – цим займалися багато :), але ніхто про це не говорить публічно. Більш того, парсинг часто засуджується і вважається чимось злегка ганебним. Причина як і в більшості подібних випадків, у неправильному сприйнятті.

Розкрию вам таємницю: парсингом займаються всі… принаймні, всі великі гравці на ринку. Пару років тому в одній із статей у Відомостях представники “М-відео”, “Зв’язкового” і “Ситилинка” навіть відкрито говорили про це у відповідь на інтерес ФАС (див. https://www.vedomosti.ru/business/articles/2017/09/07/732731-robotov-sgovore).

2. Для чого парсинг потрібен?

В першу чергу, метою парсинга є цінова «розвідка», асортиментний аналіз, відстеження товарних акцій. “Хто, що, за скільки і в яких кількостях продає?” – основні питання, на які парсинг повинен відповісти. Якщо говорити більш детально, то парсинг асортименту конкурентів або того ж Яндекс.Маркет відповідає на перші три питання.

З обігом товару дещо складніше. Однак, такі компанії як “Wildberries”, “Lamoda” і Леруа Мерлен, відкрито надають інформацію про щоденні обсяги продажу (замовлень) або залишки товару, на основі якої не складно скласти загальне уявлення про продажах (часто чую думку, мовляв ці дані можуть спотворюватися навмисно — можливо, а можливо і ні). Дивимося, скільки було товару на складі сьогодні, завтра, післязавтра і так протягом місяця і ось вже готовий графік і динаміка зміни кількості позиції складена (оборотність товару фактично). Чим вище динаміка, тим більше обіг.

Потенційно можливий спосіб дізнатися оборотність товарів з допомогою щоденного аналізу залишків сайту Леруа Мерлен.

Можна, звичайно, послатися на переміщення товарів між точками. Але сумарно, якщо брати, наприклад, Москву — то число не сильно зміниться, а суттєві пересування товару по регіонам віриться насилу.

З обсягами продажів ситуація аналогічна. Є, звичайно, компанії, які публікують інформацію у вигляді багато/мало, але навіть з цим можна працювати і самі продавані позиції легко відстежуються. Особливо, якщо відсікти дешеві позиції і сфокусуватися виключно на тих, що становлять найбільшу цінність. Принаймні, ми робили такий аналіз – цікаво виходило.

По-друге, парсинг використовується для отримання контенту. Тут вже можуть мати місце історії в стилі “правових відтінків сірого”. Багато зациклюються на тому, що парсинг – це саме крадіжка контенту, хоча це абсолютно не так. Парсинг – це всього лише автоматизований збір інформації, не більше того. Наприклад, парсинг фотографій, особливо з “водяними знаками” – це чистої води крадіжка контенту і порушення авторських прав. Тому таким зазвичай не займаються (ми в своїй роботі обмежуємося збором посилань на зображення, не більше того… ну іноді просять порахувати кількість фотографій, відстежити наявність відео на товар і дати посилання тощо).

Щодо збору контенту, цікавіша ситуація з описами товарів. Нещодавно нам надійшло замовлення на збір даних по 50 сайтів великих онлайн-аптек. Крім інформації про асортимент і ціною, нас попросили “спарс” опис лікарських апаратів – те саме, що вкладено в кожну пачку і є т. н. фактичною інформацією, тобто малоймовірно потрапляє під закон про захист авторських прав. В результаті замість набору інструкцій вручну, замовникам залишиться лише внести невеликі корективи в шаблони інструкцій, і все – контент для сайту готовий. Але так, можуть бути і авторські описи ліків, які завірені у нотаріуса і зроблені спеціально як свого роду пастки для злодюжок контенту :).

Розглянемо також збір описи книг, наприклад, ОЗОН.РУ або Лабіринт.ру. Тут вже ситуація не так однозначна з правової точки зору. З одного боку, використання такого опису може порушувати авторське право, особливо якщо опис кожної картки з товаром було нотаріально завірено (в чому я сильно сумніваюся — адже може і не бути завірено, виняток — невеликі ресурси, які хочуть затягати по судах злодіїв контенту). У будь-якому разі, в цій ситуації доведеться сильно «попотіти», щоб довести унікальність цього опису. Деякі клієнти йдуть ще далі — підключають сінонімайзери, які «на льоту» змінюють (добре чи погано) слова в описі, зберігаючи загальний зміст.

Ще одне з застосувань парсинга досить оригінально – “самопарсинг”. Тут переслідується кілька цілей. Для початку – це відстеження того, що відбувається з наповненням сайту: де биті посилання, де опису не вистачає, дублювання товарів, відсутність ілюстрацій і т. д. Півгодини роботи парсера — і ось у тебе готова таблиця з усіма категоріями і даними. Зручно! “Самопарсинг” можна використовувати і для того, щоб порівняти залишки на сайті зі своїми складськими залишками (є і такі замовники, відстежують збої выгрузок на сайт). Ще одне застосування “самопарсинга”, з яким ми зіткнулися в роботі — це структурування даних з сайту для вивантаження їх на Яндекс Маркет. Хлопцям так простіше було зробити, ніж вручну цим займатися.

Читайте також  IObit Malware Fighter — видалення шкідливих і небажаних програм

Також парсятся оголошення, наприклад, на ЦІАН-е, Авіто і т. д. Цілі тут можуть бути як перепродажу баз ріелторам або туроператорам, так і відвертий телефонний спам, ретаргетінг і т. п. У випадку з Авіто це особливо явно, т. к. відразу складається таблиця з телефонами користувачів (незважаючи на те, що Авіто підміняє телефони користувачів для захисту і публікує їх у вигляді зображення, від вступників дзвінків все одно нікуди не піти).

3) “Що в резюме тобі моєму?” або парсинг HH.RU

Останнім часом стали актуальні запити на парсинг Headhunter-а. Правда спочатку люди просять продати їм “базу Хедхантера”. Але, коли вже розуміють, що ніякої бази у нас немає і бути не може, ми переходимо до розмови про парсингу в їх профілі (“під паролем”). Це своєрідне напрямок парсинга і, чесно кажучи, нам воно не особливо цікаво, однак розповісти про нього варто.

У чому заковика? Клієнт надає доступ до свого аккаунту і ставить завдання по збору даних під свої потреби. Тобто він вже сплатив доступ до бази HH і, підписуючи з нами договір, ставить нам завдання на автоматичний збір інформації в його інтересах і під його аккаунтом, що знаходиться повністю під його відповідальністю. У разі, якщо HH зафіксує ненормальну активність, аккаунт буде заблокований. Тому ми намагаємося якомога краще імітувати людську діяльність при зборі даних.

Якби HH (наскільки знаю “успішно” провалив свої експерименти з API) сам надавав (продавав) дані в табличці по регіонах, скажімо, контакти всіх працюючих в даний момент директорів з маркетингу в Москві, до нас би ніхто і не приходив. А поки це доводиться робити людині “ручками”, до нас ідуть. Адже, коли у тебе є така таблиця, займатися рекламним спамом – холодними дзвінками набагато зручніше.

Підкреслю ще раз, у нас немає бази HH, ми просто збираємо дані для кожного клієнта під його потреби, його аккаунтом і його відповідальністю. І порушення договору оферти не пов’язане з використанням сайту парсящей стороною. Підписуючи з нами договір, клієнт отримує за прогін контакти близько 450-ти ЛПР-ів, які ми покладемо до нього на сервер, і далі вже його відділ продажів сам вирішить, що з цим робити. Ех, ми б теж “спамили”, якщо б у нас була така база. Жартую 🙂

Хоча, особисто я вважаю, що немає перспектив парсингу під паролем. А ось парсинг відкритих ресурсів – це інша справа. Ти один раз налаштував все і парсишь постійно, потім перепродаешь доступ до всіх зібраних даних. Це більш перспективно.

4) Парсинг взагалі законний?

У українському законодавстві немає статті, яка забороняє парсинг. Заборонений злом, DDOS, злодійство авторського контенту, а парсинг – це ні те, ні інше, третє і, відповідно, він не заборонений.

Деякі люди сприймають парсинг як DDOS-атаку і ставляться до нього з сумнівом. Однак, це зовсім різні речі, і при парсингу ми, навпаки, намагаємося якомога менше навантажувати цільової сайт і не нашкодити бізнесу. Як у випадку зі здоровим паразитизмом – ми не хочемо, щоб бізнес “відкинув копита”, інакше нам не на що буде “паразитувати”.

Зазвичай просять парсити великі сайти, з топа 300-500 сайтів України. На таких сайтах відвідуваність, як правило, кілька мільйонів в місяць, може навіть і більше. І на такому тлі парсинг одного товару в секунду або дві практично непомітний (немає сенсу частіше парсити, 1-2 секунди не товар — це оптимальна швидкість для великих сайтів). Відповідно, і натяку на DDOS-атаку в наших діях немає.

Нагадаю, що парсинг – це лише збір того, що ми можемо своїми очима побачити на сайті і скопіювати до себе руками. Таким чином, під статтю про авторське право можуть потрапити лише дії з вже зібраною інформацією, тобто дії самого замовника. Просто людина це робить довго повільно і з помилками, а парсер – швидко і не помиляється. Що ж робити, коли мова стосується збору даних з AliExpress або Wildberies? Людині просто не під силу таке завдання, і парсинг – єдиний вихід.

Читайте також  Мультидозовая капсула з ліками пройшла перші випробування на людях

Правда, недавно попросили парсити сайт державної організації – суду, якщо не помиляюся. Там у відкритому доступі вся інформація, але ми (на всякий випадок) відмовилися. 🙂

5) “Ви чого нас парсите, ми ж замовник” або в чому різниця між парсингом і моніторингом цін?

Моніторинг цін – один з найбільш затребуваних напрямків застосування парсингу. Але з ним не все так просто – попрацювати в даному випадку доведеться не тільки нам, але і самому клієнту.

При замовленні на моніторинг цін ми відразу попереджаємо, що будемо парсити не тільки конкурентів, а й замовника. Це необхідно для отримання схожих таблиць з товарами і цінами, які ми зможемо оновлювати автоматично. Однак, самі по собі такі дані не несуть цінність, поки вони не пов’язані між собою (так званий матчинг товарів). Деякі позиції з різних сайтів ми можемо зіставити автоматично, але, на жаль, на даний момент “машини” ще не так гарні, щоб зробити це гарантовано без помилок, і краще людини (наприклад, працює віддалено на півставки співробітника з регіонів) це ніхто не зробить.

Якщо б всі виводили штрих-код на сайті, то взагалі було б чудово, і ми могли б робити все “зв’язки” автоматично. Але, на жаль, так це не так, і навіть різні назви продуктів компанії пишуть по-різному.

Добре, що таку роботу необхідно провести один раз, а потім періодично перевіряти і вносити невеликі коректування, якщо потрібно. При наявності зв’язок ми вже можемо оновлювати такі таблиці автоматично. До того ж, зазвичай людям не потрібно моніторити ціни на все: є умовно 3-5 тисяч позицій, які в топі, а дрібниця не представляє інтерес. І оператор з регіону легко зможе виконувати таку роботу за гроші близько 10 000 рублів на місяць.

Самий вдалий і правильний кейс в даному випадку, на мій погляд, завантажувати отриманий прайс лист конкурентів відразу до себе в 1С-ку (чи іншу ERP систему) і там вже виконувати співставлення. Так моніторинг цін найлегше впровадити в щоденну діяльність своїх аналітиків. А без аналізу такої парсинг нікому і не потрібен.

6) Як захиститися від парсинга?

Та ніяк. І чи варто взагалі захищатися від парсинга? Я б не став. Працює 100% захисту все одно немає (точніше, ми ще не зустрічали), так що особливого сенсу намагатися захиститися я не бачу. Найкращий захист від парсинга – це просто викласти готову таблицю на сайті і написати – беріть звідси, оновлюємо раз в пару днів. Якщо люди так будуть робити, то в нас хліба не буде.

До речі, нещодавно зідзвонювалися з IT директором великої мережі – вони хотіли протестувати свій захист від парсингу. Я його прямо запитав, чому вони так не роблять. Як технічний спеціаліст він прекрасно розуміє, що ніяка захист від парсинга не врятує, лише відлякає дилетантів; а ось компанії, які заробляють на парсингу, цілком можуть дозволити собі дослідницьку діяльність у цьому напрямку – довго і болісно розбиратися в новій захисті, і в результаті її обійти…

Як правило, всі використовують однотипні захисту, і таке дослідження стане в нагоді ще не раз. Так от, виявилося, що відділ маркетингу не готовий до такого: “Навіщо нам спрощувати життя конкурентам?” Здавалося б, логічно, але… В результаті компанія буде витрачати гроші на захист, яка не допоможе, а паразитна навантаження на сайт – залишиться. Хоча, справедливості заради, варто відзначити, що від «студентів» вивчають python і парсящих все що ворушиться» цілком може допомогти.

До речі, і “Яндекс”, і “Google” займаються парсингом: вони заходять на сайт і індексують його – збирають інформацію. Тільки всі хочуть, щоб “Яндекс” і “Google” індексували їх сайти зі зрозумілих причин, і ніхто не хоче, щоб їх парсили 🙂

7) “Я тут безкоштовно пошукав…” або історія про авіаквитки

Одного разу до нас звернулися з цікавим замовленням на тестовий парсинг. Компанія займається авіаквитками і їм були цікаві ціни конкурентів на пару найпопулярніших напрямків. Задача виявилася нетривіальниою, т. к. довелося повозитися з підстановкою і зіставленням рейсів. Цікавим виявилося те, що ціни в “Onetwotrip”, “Aviasales” і “Skyscanner” на одні і ті ж рейси трохи відрізняються (розкид близько 5-7%).

Читайте також  Як скинути фотографії з комп'ютера на Айфон

Проект видався мені дуже цікавим, і я виклав пост про це в соц.мережах. На мій подив дискусія під постом виявилася досить агресивною, і я не відразу зрозумів, чому. Потім мені написав гендиректор однієї з компаній лідера ринку продажу квитків в Росії, і ситуація прояснилася. З’ясувалося, що запити про ціни на квитки для таких компаній платні, т. к. вони беруть інформацію з міжнародних платних сервісів. І, крім паразитної навантаження, парсинг представляє для них ще й фінансову.

У будь-якому випадку, ніхто з вас не вимагає оплати, якщо ви підшукуєте собі особисто квитки на цих сервісах, а запитів звичайні люди теж роблять чимало поки перебирають різні варіанти… загалом тут така бізнес-дилема 🙂

8) “Рецепти шеф-парсера”. або як ми працюємо?

Думаю, для більшого розуміння всіх аспектів парсинга варто відкрити завісу нашої “внутрішньої кухні”.

Все починається із замовлення. Іноді клієнти зв’язуються з нами самі, а іноді телефонуємо ми. Особливо вдало виходить із замовленнями на моніторинг цін. У цьому випадку нам доводиться парсити не тільки конкурентів, але і самого замовника. Тому ми інколи дзвонимо тим, кого так чи інакше парсим, і відкрито про це говоримо, пропонуючи свої послуги – робота адже нами вже і так виконується. Спочатку реакція дуже негативна, але проходить пара днів, емоції спадають, і замовники самі передзвонюють, кажучи: “Чорт з ним! Кого ви ще парсите?”

Парсинг у ДУЖЕ багатьох власників відвідуваних ресурсів викликає емоції. Спочатку негативні, адже він схожий з підгляданням у замкову щілину. Потім переростає в інтерес, а потім і в усвідомлення необхідності. Бізнесмени – розумні люди. Коли емоції сходять на немає і залишається холодний розрахунок, завжди виникає питання: “А, може, ми десь недопрацювали, і нам теж це потрібно?”

Завдяки цим емоціям ми досить активно ростемо і розвиваємося. На даний момент ми парсим близько 300 сайтів в день. Зазвичай у нас замовляють по 8-15 сайтів, а парсинг одного коштує від 5 до 9 тисяч рублів на місяць, в залежності від складності підключення, адже кожен сайт доводиться підключати індивідуально (йде десь 4-5 годин на ресурс). Складність полягає в тому, що деякі захищаються. Боротьба йде не стільки з парсингом, скільки з якоїсь паразитної навантаженням, яка не приносить їм прибуток, але іноді доводиться повозитися.

У будь-якому випадку ВСІ ПАРС, навіть якщо ціна на товар публікується на сайті картинка 🙂 Охочим спробувати свої сили в парсингу, рекомендую потренуватися на сайті «Аптеки Столичка» та спарс ціни: stolichki.ru/present/27694

Інтернет – магазин мережі аптек «Столичка» — ціни пишуться внутрішнім шрифтом і щоб їх спарс одним з рішень буде формування картинки і її розпізнавання. Ми так робимо по украй мірі.

Зібрані дані передаються клієнту. Зазвичай ми розміщуємо їх на власному хмарі, постійно оновлюючи, та надаємо клієнту доступ до них по API. Якщо з даними раптом стає щось не так (а це буває рідко – раз на 3-4 місяці), нам відразу дзвонять-пишуть, і ми намагаємося вирішити цю проблему якомога швидше. Такі збої виникають при установки нової захисту або блокування, а вирішуються за допомогою досліджень і проксі відповідно. В іншому випадку, коли на сайті щось змінюється, бот просто перестає розуміти, де що знаходиться, і нашому програмісту доводиться заново його налаштовувати. Але все можна вирішити, і замовники зазвичай ставляться до таких проблем з розумінням.

Зазначу, що в нашій справі особа замовника ніколи не розголошується – ми ставимося до цього досить трепетно, так і пункти в договорі про нерозголошення ніхто не відміняв. Хоч в парсингу і немає нічого поганого, але багато соромляться.

Власне, підбиваючи підсумок – якщо ви зростаючий бізнес, торгуєте широко поширеними товарами або працюєте у швидко мінливому середовищі (такий, як найм персоналу або пропозицію специфічних послуг для певної категорії авторів оголошень, резюме та вмісту інших”дошок оголошень” в Інтернеті), то рано чи пізно зіткнетеся з парсингом (як замовник або як мішень).

Автор: Максим Кульгін.

Степан Лютий

Обожнюю технології в сучасному світі. Хоча частенько і замислююся над тим, як далеко вони нас заведуть. Не те, щоб я прям і знаюся на ядрах, пікселях, коллайдерах і інших парсеках. Просто приходжу в захват від того, що може в творчому пориві вигадати людський розум.

You may also like...

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *