20 млн рублей в год на парсинге сайтов

Меня зовут Максим Кульгин, моя компания xmldatafeed занимается парсингом сайтов в России порядка четырёх лет. Ежедневно мы парсим более 500 крупнейших интернет-магазинов в России. Теперь делимся опытом.

Так как тема парсинга часто привлекает внимание и вызывает эмоции (в массе негативные), подготовил статью, где ответил на основные вопросы (их получилось 40) с которыми сталкивались в процессе работы и, надеюсь, развеял некоторые мифы.

1. Можно ли зарабатывать на парсинге? Да. Мы стали активно заниматься этим бизнесом в 2018 году и с тех пор к счастью растем. Привожу открытые налоговые данные. В 2022 году надеемся, что результат будет чуть лучше.

20 млн рублей в год на парсинге сайтов

2. В чем заключается бизнес на базе парсинга? Бизнес, условно говоря, можно разделить на две части: сбор данных и аналитика. Мы не занимаемся аналитикой (попробовали и поняли, что не потянем) и сконцентрировались только на сборе “сырых” данных. Другими словами — мы ежедневно предоставляем нашим заказчикам итоги парсинга в формате CSV/XML.

3. Что такое аналитика? Мало собрать данные, с ними надо уметь работать. Например, сервисы, которые занимаются аналитикой маркетплейсов. Эти команды парсят данные и сразу их обрабатывают в удобном для использования виде. Как упоминал ранее, мы попробовали и не справились. Почему? Нужно очень хорошо знать предметную область, чтобы сделать качественную аналитику. Мы же парсим все, что “шевелится”: ) и далее наши клиенты сами работают с этими данными.

4. Что клиенты делают с данными? Анализируют, но как — мы не знаем. Наша задача обеспечить поставку на ежедневной основе полных данных. Знаю, что часть клиентов загружают данные в 1С для удобства работы менеджеров, кто-то работает с PowerBI/Google BigQuery, а кто-то просто предпочитает Excel и открывать файлы по протоколу WebDav (у вас файлы будут доступны в проводнике Windows, как будто они находятся локально).

5. Что вы парсите? Все то, что в открытом доступе и доступно к сбору руками человека. Например: цены на товары, наличие по магазинам и т. п. Мы не занимаемся парсингом сайтов, где требуется указать логин- пароль (или эти данные должен предоставить сам клиент, понимая, что риски на блокировку полностью на его стороне, но стараемся отговаривать от таких решений).

6. Какой средний чек в этом бизнесе? С некоторой погрешностью можно назвать сумму 15 000 руб. в месяц. Но учитывая, что это бизнес больше проектный, чем продуктовый, разброс цен может быть большой. У нас есть клиенты, которые платят 400 000 р. в месяц за большой набор данных, а есть совсем “малыши” с чеком 5 000 р. в месяц.

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

8. Этот бизнес масштабируем? Да, но не так просто, как хотелось бы. Любой новый клиент (если он крупный), требует усиление команды разработчиков.

9. Сколько у вас сейчас персонала? 5 разработчиков full time в штате и команда поддержки (сотрудники, которые занимаются ежедневным тестированием результатов суточного парсинга). У нас очень молодая команда, ребята учатся (магистратура, бакалавриат) и им очень интересно заниматься парсингом, особенно если этому противодействуют.

10. Почему вы занялись этим бизнесом? Совершенно случайно. Нас попросили собрать цены с Леруа Мерлен. Попробовали, получилось ну и закрутилось: ).

11. Много поддержки? Очень. Поддержка фактически прямо пропорциональна количеству сайтов, которые парсим. Любое изменение разметки сайта может привести к тому, что парсинг сломается. Мы всегда предупреждаем клиентов, что такие риски существуют, но от этого объем работы не уменьшается).

12. Как клиенты получают данные? После многих экспериментов, мы остановились на частном облаке на базе NextCloud и я могу смело его рекомендовать. Удивительно устойчивое и бесплатное решение, регулярно обновляется, есть документированное API. Мы ежедневно выгружаем огромный объем данных на это облако в виде файлов, а клиенты забирают информацию удобным способом: API, WebDav, браузер. Звучит не так уж сложно, но как показал опыт — работает.

Вот пример работы нашего частного облака
Вот пример работы нашего частного облака

13. Сколько у вас серверов задействовано? Недавно заказали 6-й. Ранее мы парсили с VPS/VDS, но оказалось, что экономически целесообразнее парсить с помощью bare metal серверов (иными словами “железные” выделенные сервера), которые мы арендуем в нескольких ДЦ. В месяц серверам нам обходятся в ~70 000 руб. и сейчас, к сожалению, сильно подорожала аренда. Перед арендой мы рассказываем хостеру (ДЦ) в чем суть нашего бизнеса, как мы работаем и т. п. Очень редко (может быть раз в год) поступают жалобы на работу наших парсеров хостеру, но всегда вопросы урегулируем.

14. Насколько этот бизнес устойчив к санкциям? Мы, откровенно говоря, ничего не заметили. 100% наших клиентов в СНГ (80% Россия, 20% Казахстан, Беларусь и т. п.). Разве что пришлось открыть еще один расчетный счет помимо Альфа-Банка (клиенты из Казахстана не могли оплачивать).

15. Какие типы сайтов вы парсите? Любые, где есть открытые данные. Подчеркну — парсинг фактически означает автоматизацию того, что может сделать руками человек. Чаще всего (90%) просят парсить Интернет-магазины, которые относятся к категории ТОП 100.

16. Были судебные угрозы? Пару раз мы получали предупреждающие письма от компаний, которые находили у нас примеры парсинга их сайтов. Последний раз я получил письмо от CEO Aviasales, который угрожал судом и жесткой расправой, хотя по факту мы их не парсили на момент обращения. Претензия была оформлена некой нанятой юридической компанией с непонятными трактовками, т. к. видимо юристы не совсем поняли о чем идет речь вообще. Я думаю, что когда Aviasales столкнулся с массовым парсингом, они сделали рассылку претензии по всем компаниям, которые публично заявляют, что занимаются этим бизнесом на тот случай, что кто-то отреагирует. Было еще обращение от компании, которая отслеживает упоминание товарных знаков (простите, могу ошибаться, кажется это были brandmonitor), чтобы мы убрали упоминание Эльдорадо. Нам тоже грозили небесными карами, но чуть успокоились и перешли в более конструктивное русло, когда мы запросили официальные документы на подтверждение представления интересов компании Эльдорадо в этом вопросе. Чтобы сгладить вопрос, мы теперь выкладываем примеры парсинга вот с таким названием (см. ниже). Глупо, понимаю, но юридически безопаснее (нет времени и желания заниматься юридической бюрократией).

Полная чепуха, согласен
Полная чепуха, согласен

17. Можно ли получить льготы от государства, как ИТ- компании? Пытаемся, т. к. фактически мы работаем с базами данных (в законе есть соответствующие формулировки). В Сколково точно не возьмут: )

18. Парсить этично? Сложный вопрос, полагаю что да. Вообще мне кажется, что бизнес должны работать в правовом поле, а не рассматривать свое существование как этичное или нет. Вопрос философский, но обсуждаемый, т. к. парсинг зачастую вызывает негативные эмоции. Никто не любит, если их парсят. Но я сотрудникам всегда говорю — при общении с новым клиентом, если мы вдруг парсим его сайт, обязательно расскажите про это.

19. Парсить законно? Да, если вы соблюдаете некоторые моменты. Я не буду приводить развернутую юридическую оценку нашего бизнеса, но если говорить коротко — то любая общедоступная информация может собираться, если это не наносит вред источнику и не нарушает прав. Канцелярским языком это звучит следующим образом:

Организация вправе осуществлять автоматизированный сбор информации (парсинг сайтов), размещенной в открытом доступе на сайтах в сети интернет если соблюдаются следующие условия:

Информация находится в открытом доступе и не защищается законодательством об авторских и смежных правах.

Автоматизированный сбор осуществляется законными способами.

Автоматизированный сбор информации не приводит к нарушению в работе сайтов в сети интернет.

Автоматизированный сбор информации не приводит к ограничению конкуренции.

Вот, например, обычный запрос от клиента:

“Здравствуйте. Мне нужен парсер, который будет ежедневно собирать остатки с сайта поставщика и отдавать их в виде excel файла или xml фида.”

20. А что относительно авторского права? Не нужно просто парсить (или использовать) информацию, которая может быть объектом авторского права. Например описания товаров. К счастью, 99% клиентов просят нас собирать фактические данные, которые не попадают под эту категорию: цена, бренд, категория и т. п. Тут уместно упомянуть Яндекс/Google, которые парсят ваш сайт, собирая контент с страниц в свой индекс. Владельцам сайтов это нравится, т. к. это увеличивает посещаемость, а парсинг не нравится, т. к. потенциально усиливает конкурента. Но эти роботы действуют одинаково.

21. Я написал в оферте на моем сайте, что запрещаю парсинг! Простите, но это никого не интересует и вашу оферту никто читать не будет.

22. Усложняю вам парсинг — цену выведу картинкой! Хоть звучит смешно, но встречали и такое на ряде сайтов. Пожалуйста, не тратьте свое время — библиотеки распознавания изображений работают великолепно. Вы же не будете цены на ваши товары выводить следующим образом:

20 млн рублей в год на парсинге сайтов

23. Я тогда ограничу количество запросов, а потом попрошу решить капчу (captcha) и это усложнит вам работу сильно! Есть очень дешевые сервисы ручного решения капчи. Упрощенно говоря, когда наши роботы встречают капчу, по API мы подключаем этот сервис, которые перекидывает задачу оператору для ручного решения. В месяц мы тратим порядка 4 000 р. на оплачу этих сервисов.

24. Вы сильно нагружаете сайты, которые парсите? Нет. Никто не хочет сделать так, чтобы владельцы сайта, раздраженные мощной, паразитной нагрузкой от парсеров, стали внедрять механизмы защиты, которые просто усложняют нам «жизнь”. Если говорить про абсолютные цифры, то нормальным считаем парсинг данных с карточки одного товара в 3-4 секунды. К сожалению, не все придерживаются такой парадигмы и ко мне лично обращались владельцы сайтов, которые уточняли не мы ли их парсим, т. к. нагрузка была запредельной. Чаще всего причина в »кривых руках” разработчиков.

25. Чем парсинг отличается от DDOS? Тем, что наша задача — автоматизированный сбор данных, на регулярной основе, в течении длительного времени. DDOS преследует совершенно иную цель —” сломать” сайт.

26. Вы взламываете сайты? Нет и не планируем. Бывает, что нас просят «как-то решить” с получением данных, которые защищены паролем. Но это не наш бизнес и вообще это не бизнес, а некая »тема” относящаяся уже к darknet.

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

28. Все же, какой самый лучший способ защиты? Выложить данные в формате XML и дать ссылку. Вас гарантированно перестанут парсить и будут забирать данные в удобном виде. Звучит, конечно, как некая утопия и я понимаю, что мало кто последует данному совету, но это единственный способ избежать парсинга.

29. У кого самая сложная защита? АВИТО. У них достаточно ресурсов, чтобы заниматься этим вопросом на очень высоком уровне. Причем, как я думаю, в основном компании защищаются не от самого парсинга, а от DDOS — атак, а парсинг, образно говоря, попадает “под раздачу” защитными фильтрами.

30. Нужно ли мне внедрять на своем сайте защиту? В случае промышленного парсинга, лично мое мнение, — защита не очень поможет, но может усложнить задачу. Но совершенно точно любая защита может отсеять «студентов”, которые вчера прочитали книжку "Парсинг с помощью Python для чайников”. Бизнес устроен так, что чем сложнее парсить сайт, тем дороже будет цена для конечного клиента и тем больше усилий будет приложено командой для решения задачи.

31. Много у вас конкурентов? Очень. Много фрилансеров-самозанятых, которые предлагают услуги парсинга значительно дешевле наших. Насколько мне известно, к ним обращаются за разовым услугами, т. к. если заниматься парсингом регулярно, должна уже быть команда специалистов в штате на поддержку.

32. Как вы обходите защиту? Прокси. Разные. Много. Смена fingerprint (цифровой отпечаток браузера). Плюс — опыт команды, который накопился за несколько лет. Чем сложнее защита, тем медленнее парсинг, т.к. нам приходится, например, решать капчу - а это время. Сайты на 5-6 запрос просят решить капчу, парсер ждет решения человеком, далее продолжает работу (меняя fingerprint), до следующего запроса на решение.

33. Что думаете про cloudflare? Научились обходить. Но отмечу, что этот сервис в основном ставят для CDN/DDOS, а не для защиты от парсинга. С введением санкций количество сайтов с ним упало. Qrator отличное решение для защиты от DDOS - атак тоже добавляем нам сложностей :)

34. Как вы ищите клиентов? Тут мы не оригинальны и все клиенты приходят через сайт с помощью органического трафика (Яндекс и Google 50-50%). Мы пытались давать контекстную рекламу, но отдачу не увидели. Самое результативное, что догадались сделать — публиковать примеры (статичные) парсинга известных компаний на своем сайте с возможностью их скачать и изучить. Дальше люди просят данные уже в динамике и мы заключаем договор. Пример ниже, цифры по скачиванию честные. Сам сайт сделан на WordPress, ничего сложного.

20 млн рублей в год на парсинге сайтов

35. На что конкретно заключается договор? Автоматизированный сбор неструктурированных данных с открытых источников в сети Интернет с преобразованием в структурированные данные. Собственно так и есть.

36. Какой запрос на парсинг самый частый? “Соберите мне, пожалуйста, контакты маркетологов фитнес-центров г. Казань”. Это не шутка, именно подобные запросы мы получаем чаще всего. Задача не имеет роботизированного решения, т. к. мы не работаем с персональными данными людей, которые еще и не хотят их делать публичными. Мы можем сделать, например, базу Интернет-магазинов косметики, с помощью анализа title/description сайтов в зоне. RU/. РФ и собрать публичные адреса электронной почты и телефоны. Но не решить задачу по сбору личных контактов ЛПР.

Какие еще интересные запросы вы получаете? Вот, пожалуйста. Задача тоже не имеет никакого решения.

“Здравствуйте, хотим получить базу стоматологических клиник. При возможности параметры: в городах больше 500,000. Более 4 кабинетов в клинике. Средний чек больше 7000. + Имейл и телефон ЛПР (рабочие, не пустые)”

37. Как делают базы компаний? Создание баз компаний с открытыми данными — производная парсинга. Настраивают роботов, которые обходят все сайты в Рунете (где-то 6.5 млн.) и собирают общедоступные данные. Таким образом можно создать, например, Базу всех ресторанов и кафе, Базу оптовых компаний и т. п. В любом случае, обрабатываются только общедоступные, публичные корпоративные данные.

38. А вы делаете матчинг товаров? Нет. Может быть зря, но наша задача — поставлять данные регулярно, в запрашиваемом клиентом объеме. Признаю, что если сделать “шаг вперед” и заняться матчингом товаров между разными продавцами и продавать аналитическую отчетность, мы могли бы добиться больших результатов. Могу ошибаться, но именно этим занимаются наши конкуренты (или смежники, так лучше назвать) и финансовые результаты по выручке у них явно лучше (см. ниже). Что удерживает? Ресурсоемкость. Матчить (сопоставлять) между собой товары по названию между разными игроками на постоянно основе очень сложно. Мы пытались внедрять различные алгоритмы, которые частично автоматизируют этот процесс, но результаты были неудовлетворительные (попробуйте, например, сопоставить аптечные препараты с фасовкой-граммовкой-литражом).

Завидую :)
Завидую :)

39. Почему крупные компании заказывают парсинг на стороне, а не делают сами? Причины разные. Очень крупные, публичные компании, сталкиваются с рекомендациями своих юристов/СБ, чтобы никоем образом не быть самим вовлеченными в автоматизированном сборе данных (это не домыслы, а опыт общения). Другие компании не хотят заниматься наймом дополнительных разработчиков, управлять ими, тестировать результаты и т. п.

40. Компании вообще знают, что вы (или кто-то другой) их парсит? Часто новые клиенты спрашивают (в шутку или нет), а не парсим ли мы их случайно!? Наша позиция — мы честно отвечаем как есть. Только один раз, крупный клиент рассердился и сказал, что если мы хотим с ним работать, прекратить парсить его. В итоге мы с ним не работаем.

41. Вы храните данные исторические? Нет. Нам не "по карману" хранить историю ежедневного среза цен по всем магазинам. Звучит очень интересно, но нашими силами это не потянуть. Мы регулярно удаляем данные старше 7 дней.

42. Можете выйти на глобальные рынки? Боюсь что нет. Это больше проектная деятельность, чем продуктовая. Нужен менеджер по работе с клиентами с отличным английским, поддержка на этом языке и т.п. Но совершенно точно - можно работать на локальных рынках и зарабатывать, т.к. услуга востребованная. Чем больше информации, чем активнее идет цифровая трансформация (простите за этот изъезженный термин), тем больше востребованность превращения неструктурированных данных в структурированные!

43. Где можно почитать больше информации? Я регулярно пишу в Телеграмм наш опыт.

Спасибо за внимание, старался быть краток и по делу — не стесняйтесь задавать свои вопросы в комментариях.

p. s. Не ругайтесь: ) я понимаю, что парсинг сразу настраивает на негатив. Но это обычный бизнес, которым, уверяю вас, занимаются 80% торговых компаний (в том или ином виде) .

412412
315 комментариев

Откровенно) молодцы

62

Спасибо

1

Комментарий недоступен

21

ну с чего оно вырастет?

"9. Сколько у вас сейчас персонала? 5 разработчиков full time в штате и команда поддержки

11. Много поддержки? Очень"

итак, 20 млн в год. это 1.66м в месяц.
-6% налоги (считаем в хорошем случае)
- 70к - сервера.

остается ~1.5/мес

теперь разделите это на 5 разработчиков + "много техподдержки". и это без учета дополнительных расходов типа бухгалтерии

48

Да их тысячи и так :)

29

Раз уж тут говорят про парсеры, расскажу о своем проектике - сделал автоматический инструмент по вытягиванию данных со страницы - никакой разработки, всё визуально.

От вас только скачать и подсунуть данные в скрипт

https://www.youtube.com/watch?v=gL_PewF2nmg

25

он только википедию понимает?