Q-Parser — как появился сервис для парсинга товаров

Как из простенького скрипта «для своих» появился сервис по парсингу и выгрузке товаров.

Идея

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

На тот момент мы развивали сайт совместных покупок СП-Юга (который, увы, ушел на дно из-за самой концепции СП) и основной проблемой было наполнение каталога товаров актуальной информацией.

Оптовые поставщики обычно имеют свой сайт, но не имеют больше ничего. Хорошо, если есть хоть какой-то файл с товарами (иногда нет ничего). Его нужно привести к определенному формату, скачать фото товаров и т.д. и т.п. А если файла нет, то товары переносились вручную. Это занимает просто огромную кучу времени.

Чтобы оптимизировать этот процесс я писал парсеры товаров для популярных сайтов поставщиков. Товары парсились и формировался файл нужного формата со всеми данными. Процесс занимал от нескольких минут до пары часов (в зависимости от числа товаров), но не требовал ничего - нужно просто подождать. Жутко удобно.

Именно тогда на участке дороги Краснодар - Ейск родилась идея сделать парсинг услугой в виде отдельного сервиса. И в мае 2017 года мы приступили к реализации, чтобы уже 6 ноября запустить первую версию Q-Parser.

Первая версия самопального дизайна (из веб-архива 2018). Очень цветасто.
Первая версия самопального дизайна (из веб-архива 2018). Очень цветасто.

6 месяцев разработки

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

Быстро? Медленно? Не знаю. Для одного разработчика и его второй половинки, думаю, вышло неплохо.

Инвестиции в проект составили ужасающие 199 руб за домен и 800 руб за первую VDS в месяц. Это действительно весь список затрат. Реклама появилась чуть позже, но и по сей день она занимает небольшое место в бюджете.

Вся разработка и первое наполнение - своими силами.

Название? Вот у меня буква Q на клавиатуре первая, пусть будет.

Дизайн? Я всю жизнь в вебе, сайтов что-ли не видел. Что-то накидал и пойдет.

И оно пошло. Скоро будет 2 миллиона парсингов.

Так сейчас выглядит страница со списком товаров. Номер парсинга настоящий.
Так сейчас выглядит страница со списком товаров. Номер парсинга настоящий.

Q-Parser - сервис с душой

Техническая реализация и эволюция сервиса по парсингу и выгрузке товаров - это отдельная история взлетов (в основном нагрузки) и падений. Если вам интересно как развить сервис с одной VDS за 800 руб до kubernetes кластера на десятке машин, обязательно напишите: будет заинтересованность, будут и статьи.

Фишкой Q-Parser изначально было (и остается сейчас) отношение к клиентам и поддержка. Не просто "парсим товары". Сервис решает проблемы.

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

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

  • Парсинг по расписанию. Попросили примерно через месяц после запуска. Юлии понадобились постоянные ссылки на файлы для загрузки товаров в Яндекс.Маркет. Теперь у нас есть парсинг по расписанию с постоянными, обновляемыми ссылками на файлы.
  • Скачивание фото товаров. Необходимо было скачать фото с одного сайта электроинструментов. В итоге на Q-Parser появилась возможность скачивать фото любых товаров, которые мы парсим.
  • Редактирование фото. Кто-то захотел покрутить и обрезать фото товаров. Хотели? Готово. Теперь можно крутить-вертеть, резать и даже накладывать на фото товаров свои вотермарки.
  • Фильтры и сортировки. Часто просили не просто спарсить "втупую", но еще и убрать ненужные товары или оставить только товары определенного бренда или с определенной ценой. Сказано - сделано. Фильтрация миллионов товаров в реал-тайме - задачка не из легких.

Спустя все эти года стало ясно, что универсальность для каждого - все же возможна. Q-Parser сейчас работает как конструктор: вы можете просто парсить товары "как есть" и ничего с ними не делать, а можете автоматически создать полноценный каталог со своими ценами, описаниями и характеристиками товаров.

Текущая версия дизайна. Тоже есть "свои" изменения по сравнению с разработанным макетом
Текущая версия дизайна. Тоже есть "свои" изменения по сравнению с разработанным макетом

Аудитория

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

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

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

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

Продвижение

Парсинг - как ни крути, довольно узко-специализорованная штука. Кому-то действительно проще тратить кучу времени на наполнение каталогов, а кто-то просто ничего не обновляет.

Продвигать парсинг на старте было достаточно просто. У нас уже была стартовая аудитория организаторов СП. Из контекстной рекламы потянулись пользователи. Хорошо работает сарафанное радио: люди любят Q-Parser.

В целом парсить сайты за 400 руб в месяц без особых ограничений - это практически бесплатно. Некоторые парсят миллионы товаров в месяц за все ту же цену.

До недавнего времени было много пользователей из стран СНГ и, особенно, из Украины. Кто-то даже остался.

Но с определенного этапа, которого проект уже достиг, сделать рывок по размеру аудитории становится сложно. Контекстная реклама уперлась в размер аудитории (просто некуда тратить деньги в Директе), а другая реклама либо не эффективна, либо слишком уж дорогая.

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

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

А минусы?

Куда же без минусов. Универсальность сервиса накладывает свои ограничения.

За годы работы реализованы десятки форматов выгрузки товаров: от обычного YML до форматов для Insales или там Storeland (их много разных). И проблема в том, что невозможно "любые" данные о товарах поместить в "любой" формат.

Как это работает технически. Берем страницу каждого товара и приводим ее к "голым" данным: название, артикул, цена, характеристики и т.п.

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

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

Что дальше?

Q-Parser постоянно развивается и никто не планирует останавливаться. И хоть внешне это может быть не слишком заметно, но обновления выходят практически каждый день: на данный момент в основном репозитории 3659 коммитов (а всего там 11 отдельных репозиториев).

Буду рад новым идеям и комментариям, а для новых пользователей: ловите промокод на подключение тарифов -15% VCRU

P.S. Если кто-то знает адекватный способ приема платежей из СНГ (кроме крипты), поделитесь.

99
18 комментариев

Сама идея хорошая. Дизайн приятен глазу, и, что самое главное, понятен. Желаю успехов и дальнейшего развития!

1
Ответить

Хорошее мало обсуждают, а мне ваш сервис полезен и нравится. Потому напишу вам спасибо!

1
Ответить

Круто, интересна техническая сторона. Какой стек, как построены парсеры, какая архитектура проекта?

Ответить
Автор

Если кратко: php, JS, go, mongo, elasticsearch и много других слов в k8s кластере.
Подробно, возможно в ближайшем будущем созрею на статью на хабре. Тут такому особо не место.

1
Ответить

Добрый день. Хотел использовать Q-Parser для парсинга сайта с товарами, но столкнулся с проблемой, что парсинг не заходит в карточку товара и не выдает детализацию в связке артикул-цвет-размер. К сожалению, данное ограничение обгуляет возможность использования продукта, а горячая линия не смогла помочь. А так, парсинг неплох.

Ответить
Автор

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

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

Ответить

БЕЗПОЛЕЗНЫЙ парсер в котором нельзя связать характеристики.
Вы писали в статье, мол потолок пользователей, так этот потолок вы не пробьёте, пока не решите вопрос со связкой!

Ответить