18 апреля 2019 4 4696

Правда про парсинг сайтов, или «все интернет-магазины делают это»

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

О чем пойдет речь
В этой статье я постараюсь наиболее просто рассказать о парсинге сайтов и его основных нюансах. Моя компания занимается парсингом сайтов уже более трёх лет и ежедневно мы парсим около 300 сайтов. Я обычно открыто пишу об этом в соц.сетях (плюс мы много чего из итогов парсинга крупнейших магазинов России выкладываем бесплатно — публично), что вызывает бурные обсуждения и неодобрение со стороны пользователей. Забавно после прочтения комментариев заглядывать к себе в личку и читать сообщения с предложениями о сотрудничестве от тех же людей, кто только что осуждал нас в комментариях под постом :) Вся статья будет в формате наиболее часто задаваемых вопросов и честных ответов.

1. Что такое парсинг?
По определению парсинг — это автоматизированный сбор неструктурированной информации, ее преобразование и выдача в структурированном виде. Довольно безобидно, не правда ли? Однако, общество относится к этому довольно своеобразно, как к подростковой мастурбации — многие этим занимались, но никто об этом не говорит публично. Более того, парсинг часто осуждается и считается чем-то слегка постыдным. Причина как и в большинстве подобных случаев — в неправильном восприятии.

Раскрою вам тайну: парсингом занимаются все… По крайней мере, все крупные игроки на рынке. Пару лет назад в одной из статей в Ведомостях представители «М-видео», «Связного» и «Ситилинка» даже в открытую говорили об этом в ответ на интерес ФАС.

2. Для чего парсинг нужен?
В первую очередь, целью парсинга является ценовая «разведка», ассортиментный анализ, отслеживание товарных акций. «Кто, что, за сколько и в каких количествах продаёт?» — основные вопросы, на которые парсинг должен ответить. Если говорить более подробно, то парсинг ассортимента конкурентов или того же Яндекс.Маркет отвечает на первые три вопроса.

С оборотом товара несколько сложней. Однако, такие компании как «Wildberries», «Lamoda» и Леруа Мерлен, открыто предоставляют информацию об ежедневных объемах продаж (заказах) или остатках товара, на основе которой не сложно составить общее представлении о продажах (часто слышу мнение, мол эти данные могут искажаться намеренно — возможно, а возможно и нет). Смотрим, сколько было товара на складе сегодня, завтра, послезавтра и так в течении месяца и вот уже готов график и динамика изменения количества по позиции составлена (оборачиваемость товара фактически). Чем выше динамика, тем больше оборот.

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

С объемами продаж ситуация аналогична. Есть, конечно, компании, которые публикуют информацию в виде много/мало, но даже с этим можно работать, и самые продаваемые позиции легко отслеживаются. Особенно, если отсечь дешёвые позиции и сфокусироваться исключительно на тех, что представляют наибольшую ценность. По крайней мере, мы такой анализ делали, интересно получалось.

Во-вторых, парсинг используется для получения контента. Здесь уже могут иметь место истории в стиле «правовых оттенков серого». Многие зацикливаются на том, что парсинг — это именно воровство контента, хотя это совершенно не так. Парсинг — это всего лишь автоматизированный сбор информации, не более того. Например, парсинг фотографий, особенно с «водяными знаками» — это чистой воды воровство контента и нарушение авторских прав. Потому таким обычно не занимаются (мы в своей работе ограничиваемся сбором ссылок на изображения, не более того… ну иногда просят посчитать количество фотографий, отследить наличие видео на товар и дать ссылку и т.п.).

Касательно сбора контента, интересней ситуация с описаниями товаров. Недавно нам поступил заказ на сбор данных по 50 сайтам крупных онлайн-аптек. Помимо информации об ассортименте и цене, нас попросили спарсить описание лекарственных аппаратов — то самое, что вложено в каждую пачку и является т.н. фактической информацией, т.е. маловероятно попадает под закон о защите авторских прав. В результате вместо набора инструкций вручную, заказчикам останется лишь внести небольшие корректировки в шаблоны инструкций, и всё — контент для сайта готов. Но да, могут быть и авторские описания лекарств, которые заверены у нотариуса и сделаны специально как своего рода ловушки для воришек контента :).

Рассмотрим также сбор описания книг, например, с ОЗОН.РУ или Лабиринт.ру. Здесь уже ситуация не так однозначна с правовой точки зрения.

С одной стороны, использование такого описания может нарушать авторское право, особенно если описание каждой карточки с товаром было нотариально заверено (в чём я сильно сомневаюсь — ведь может и не быть заверено, исключение — небольшие ресурсы, которые хотят затаскать по судам воров контента). В любом случае, в данной ситуации придётся сильно «попотеть», чтобы доказать уникальность этого описания. Некоторые клиенты идут еще дальше — подключают синонимайзеры, которые «на лету» меняют (хорошо или плохо) слова в описании, сохраняя общий смысл.

Ещё одно из применений парсинга довольно оригинально — самопарсинг. Здесь преследуется несколько целей. Для начала — это отслеживание того, что происходит с наполнением сайта: где битые ссылки, где описания не хватает, дублирование товаров, отсутствие иллюстраций и т.д. Полчаса работы парсера — и вот у тебя готовая таблица со всеми категориями и данными. Удобно! Самопарсинг можно использовать и для того, чтобы сравнить остатки на сайте со своими складскими остатками (есть и такие заказчики, отслеживают сбои выгрузок на сайт). Ещё одно применение самопарсинга, с которым мы столкнулись в работе — это структурирование данных с сайта для выгрузки их на Яндекс Маркет. Ребятам так проще было сделать, чем вручную этим заниматься.

Также парсятся объявления, например, на ЦИАН-е, Авито и т.д. Цели тут могут быть как перепродажи баз риелторам или туроператорам, так и откровенный телефонный спам, ретаргетинг и т.п. В случае с Авито это особенно явно, т.к. сразу составляется таблица с телефонами пользователей (несмотря на то, что Авито подменяет телефоны пользователей для защиты и публикует их в виде изображения, от поступающих звонков все равно никуда не уйти).

3. «Что в резюме тебе моем?» или парсинг HH.RU
В последнее время стали актуальны запросы на парсинг Headhunter'а. Правда сначала люди просят продать им базу Хедхантера. Но, когда уже понимают, что никакой базы у нас нет и быть не может, мы переходим к разговору о парсинге в их профиле (под паролем). Это своеобразное направление парсинга и, честно говоря, нам оно не особо интересно, однако рассказать о нём стоит.

«Как арбитражнику повысить эффективность работы на 175%», — выступление Владислава Бочкарева, Head of account UFFILIATES

В чём тонкость? Клиент предоставляет доступ к своему аккаунту и ставит задачу по сбору данных под свои нужды. Т.е. он уже оплатил доступ к базе HH и, подписывая с нами договор, ставит нам задачу на автоматический сбор информации в его интересах и под его аккаунтом, что находится полностью под его ответственностью. В случае, если HH зафиксирует ненормальную активность, аккаунт будет заблокирован. Потому мы стараемся как можно лучше сымитировать человеческую деятельность при сборе данных.

Если бы HH (насколько знаю, успешно проваливший свои эксперименты с API) сам предоставлял (продавал) данные в табличке по регионам, скажем, контакты всех работающих в данный момент директоров по маркетингу в Москве, к нам бы никто и не приходил. А пока это приходится делать человеку ручками, к нам идут. Ведь, когда у тебя есть такая таблица, заниматься рекламным спамом — холодными звонками намного удобнее.

Подчеркну ещё раз, у нас нет базы HH, мы просто собираем данные для каждого клиента под его нужды, его аккаунтом и его ответственностью. И нарушение договора оферты не связано с использованием сайта парсящей стороной. Подписывая с нами договор, клиент получает за прогон контакты порядка 450-ти ЛПР-ов, которые мы положим к нему на сервер, и дальше уже его отдел продаж сам решит, что с этим делать. Эх, мы бы тоже спамили, если б у нас была такая база. Шучу :)

Хотя, лично я считаю, что нет перспектив в парсинге под паролем. А вот парсинг открытых ресурсов — это другое дело. Ты один раз настроил всё и парсишь постоянно, потом перепродаешь доступ ко всем собранным данным. Это более перспективно.

4. Парсинг вообще законен?
В российском законодательстве нет статьи, запрещающей парсинг. Запрещен взлом, DDOS, воровство авторского контента, а парсинг — это ни то, ни другое, ни третье и, соответственно, он не запрещен.

Некоторые люди воспринимают парсинг как DDOS-атаку и относятся к нему с сомнением. Однако, это совершенно разные вещи, и при парсинге мы, напротив, стараемся как можно меньше нагружать целевой сайт и не навредить бизнесу. Как в случае со здоровым паразитизмом — мы не хотим, чтобы бизнес «отбросил копыта», иначе нам не на чем будет паразитировать.

Обычно просят парсить крупные сайты, из топа 300-500 сайтов России. На таких сайтах посещаемость, как правило, несколько миллионов в месяц, может даже и больше. И на таком фоне парсинг одного товара в секунду или в две практически незаметен (нет смысла чаще парсить, 1-2 секунды на товар — это оптимальная скорость для крупных сайтов). Соответственно, и намека на DDOS-атаку в наших действиях нет. Очень редко люди просят чтобы мы обновляли, например, весь сайт БЕРУ.РУ за сутки — это, скажем прямо, перебор и слишком высокая нагрузка на сайт… обычно занимает 3-4 дня.

Напомню, что парсинг — это лишь сбор того, что мы можем своими глазами увидеть на сайте и скопировать к себе руками. Таким образом, под статью об авторском праве могут попасть лишь действия с уже собранной информацией, т.е. действия самого заказчика. Просто человек это делает долго медленно и с ошибками, а парсер — быстро и не ошибается. Что же делать, когда речь касается сбора данных с AliExpress или Wildberies? Человеку просто не под силу такая задача, и парсинг — единственный выход.

Правда, недавно попросили парсить сайт государственной организации — суда, если не ошибаюсь. Там в открытом доступе вся информация, но мы (на всякий случай) отказались. :)

5. «Вы чего нас парсите, мы же заказчик» или в чем разница между парсингом и мониторингом цен?
Мониторинг цен — одно из наиболее востребованных направлений применения парсинга. Но с ним не всё так просто — поработать в данном случае придётся не только нам, но и самому клиенту.

При заказе на мониторинг цен мы сразу предупреждаем, что будем парсить не только конкурентов, но и заказчика. Это необходимо для получения схожих таблиц с товарами и ценами, которые мы сможем обновлять автоматически. Однако, сами по себе такие данные не несут ценность, пока они не связаны между собой (так называемый матчинг товаров). Некоторые позиции с разных сайтов мы можем сопоставить автоматически, но, к сожалению, на данный момент машины еще не так хороши, чтобы сделать это гарантированно без ошибок, и лучше человека (например, работающего удаленно на полставки сотрудника из регионов) это никто не сделает.

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

Хорошо, что такую работу необходимо провести единожды, а потом периодически перепроверять и вносить небольшие корректировки, если требуется. При наличии связок мы уже можем обновлять такие таблицы автоматически. К тому же, обычно людям не требуется мониторить цены на всё: есть условно 3-5 тысяч позиций, которые в топе, а мелочь не представляет интерес. И оператор из региона легко сможет выполнять такую работу за деньги порядка 10 000 рублей в месяц.

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

6. Как защититься от парсинга?

Да никак. И стоит ли вообще защищаться от парсинга? Я бы не стал. Работающей 100% защиты всё равно нет (точнее, мы еще не встречали), так что особого смысла пытаться защититься я не вижу. Лучшая защита от парсинга — это просто выложить готовую таблицу на сайте и написать — берите отсюда, обновляем раз в пару дней. Если люди так будут делать, то у нас хлеба не будет.

Кейс: простой и бюджетный залив гемблы в Facebook без банов с ROI 88%

К слову говоря, недавно созванивались с IT директором крупной сети — они хотели протестировать свою защиту от парсинга. Я его напрямую спросил, почему они так не делают. Как технический специалист он прекрасно понимает, что никакая защита от парсинга не спасёт, лишь отпугнет дилетантов; а вот компании, которые зарабатывают на парсинге, вполне могут позволить себе исследовательскую деятельность в этом направлении — долго и мучительно разбираться в новой защите, и в итоге ее обойти…

Как правило, все используют однотипные защиты, и такое исследование пригодится еще не раз. Так вот, оказалось, что отдел маркетинга не готов к такому: «Зачем нам упрощать жизнь конкурентам?» Казалось бы, логично, но… В результате компания будет тратить деньги на защиту, которая не поможет, а паразитная нагрузка на сайт — останется. Хотя, справедливости ради, стоит отметить, что от «студентов» изучающих python и парсящих все что «шевелится» вполне может помочь.

Кстати, и Яндекс, и Google занимаются парсингом: они заходят на сайт и индексируют его — собирают информацию. Только все хотят, чтобы Яндекс и Google индексировали их сайты по понятным причинам, и никто не хочет, чтобы их парсили :)

7. «Я тут бесплатно поискал...» или история про авиабилеты
Однажды к нам обратились с интересным заказом на тестовый парсинг. Компания занимается авиабилетами и им были интересны цены конкурентов на пару самых популярных направлений. Задача оказалась нетривиальной, т.к. пришлось повозиться с подстановкой и сопоставлением рейсов. Занимательным оказалось то, что цены у Onetwotrip, Aviasales и Skyscanner на одни и те же рейсы немного отличаются (разброс около 5-7%).

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

В любом случае, никто же с вас не требует оплаты, если вы подыскиваете себе лично билеты на этих сервисах, а запросов обычные люди тоже делают немало пока перебирают разные варианты… В общем тут такая бизнес-дилемма :)

8. «Рецепты шеф-парсера», или как мы работаем?
Думаю, для большего понимания всех аспектов парсинга стоит приоткрыть завесу нашей внутренней кухни.

Всё начинается с заказа. Иногда клиенты связываются с нами сами, а иногда звоним мы. Особенно удачно получается с заказами на мониторинг цен. В этом случае нам приходится парсить не только конкурентов, но и самого заказчика. Поэтому мы порой звоним тем, кого так или иначе парсим, и в открытую об этом говорим, предлагая свои услуги — работа ведь нами уже и так выполняется. Сначала реакция очень негативная, но проходит пара дней, эмоции спадают, и заказчики сами перезванивают, говоря: «Чёрт с ним! Кого вы ещё парсите?».

Парсинг у ОЧЕНЬ многих владельцев посещаемых ресурсов вызывает эмоции. Сначала негативные, ведь он схож с подглядыванием в замочную скважину. Затем перерастает в интерес, а потом и в осознание необходимости. Бизнесмены — умные люди. Когда эмоции сходят на нет и остаётся холодный расчёт, всегда возникает вопрос: «А, может, мы где-то недоработали, и нам тоже это нужно?».

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

В любом случае ВСЁ ПАРСИТСЯ, даже если цена на товар публикуется на сайте как картинка :) Желающим попробовать свои силы в парсинге, рекомендую потренироваться на сайте «Аптеки Столички» и спарсить цены.

Интернет-магазин сети аптек «Столички» — цены пишутся внутренним шрифтом и чтобы их спарсить одним из решений будет формирование картинки и ее распознавание. Мы так делаем по крайне мере.

Собранные данные передаются клиенту. Обычно мы размещаем их на собственном облаке, постоянно обновляя, и предоставляем клиенту доступ к ним по API. Если с данными вдруг становится что-то не так (а это бывает редко — раз в 3-4 месяца), нам сразу звонят-пишут, и мы стараемся устранить проблему как можно быстрее. Такие сбои возникают при установки новой защиты или блокировки, а решаются с помощью исследований и прокси соответственно. В другом случае, когда на сайте что-то меняется, бот просто перестает понимать, где что находится, и нашему программисту приходится заново его настраивать. Но всё решаемо, и заказчики обычно относятся к таким проблемам с пониманием.

Отмечу, что в нашем деле личность заказчика никогда не разглашается — мы относимся к этому достаточно трепетно, да и пункты в договоре о неразглашении никто не отменял. Хоть в парсинге и нет ничего предосудительного, но многие стесняются.

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

Маркетплейсы — Телеграм-канал Партнеркина. Вся актуалочка в одном месте. Подписывайся и будь в курсе событий индустрии.

Арбитраж товаров на Amazon: история Олега Кузменкова и плагина Seller Assistant App
Как вам статья?
ПОЛУЧИТЬ АКТУАЛЬНУЮ ПОДБОРКУ КЕЙСОВ

Прямо сейчас бесплатно отправим подборку обучающих кейсов с прибылью от 14 730 до 536 900 ₽.

Лучшие промокоды
Партнерки
Welcome Partners
Конвертируйте свой трафик в нише онлайн-казино
TRAFORCE
Дейтинговая СPA-сеть
Leadshub
Gambling и Betting CPA-сеть
Сервисы
Dolphin{anty}
Лучший антидетект браузер
PARTNERKIN
20%
iRent.Market
Aренда iOS-приложений с уникальной технологией
PARTNERKIN
20%
AdPlexity
Мониторинг мобильной, десктоп и нативной рекламы
partnerkin_m
25%

seoonly.ru Ответить
Спасибо!
18 апреля 2019, 15:35 0
парсинг!
18 апреля 2019, 16:16 0
Чебурашка Ответить
«С одной стороны, использование такого описания может нарушать авторское право, особенно если описание каждой карточки с товаром было нотариально заверено (в чём я сильно сомневаюсь — ведь может и не быть заверено, исключение — небольшие ресурсы, которые хотят затаскать по судам воров контента).»

Вы сильно заблуждаетесь, авторское право не требует никакого факта «нотариального заверения», оно возникает в момент создания. Т.е. достаточно будет доказать в суде, что данные описания раньше написаны.

24 апреля 2019, 20:04 0
Друг, поделись парсером билетов? Периодически нужно, а там черт ногу сломит с поиском...
25 апреля 2019, 14:59 0