{"id":14271,"url":"\/distributions\/14271\/click?bit=1&hash=51917511656265921c5b13ff3eb9d4e048e0aaeb67fc3977400bb43652cdbd32","title":"\u0420\u0435\u0434\u0430\u043a\u0442\u043e\u0440 \u043d\u0430\u0442\u0438\u0432\u043e\u043a \u0438 \u0441\u043f\u0435\u0446\u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u0432 vc.ru \u2014 \u043d\u0430\u0439\u0434\u0438\u0441\u044c!","buttonText":"","imageUuid":""}

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

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

Идея

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

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

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

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

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

Первая версия самопального дизайна (из веб-архива 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. Если кто-то знает адекватный способ приема платежей из СНГ (кроме крипты), поделитесь.

0
23 комментария
Написать комментарий...
David

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

Ответить
Развернуть ветку
Alecs Proz

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

Ответить
Развернуть ветку
Арчил Абуладзе

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

Ответить
Развернуть ветку
VVV
Автор

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

Ответить
Развернуть ветку
Oleg Geraskin

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

Ответить
Развернуть ветку
VVV
Автор

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

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

Ответить
Развернуть ветку
AM77

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

Ответить
Развернуть ветку
VVV
Автор

Честный ответ ниже :)

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

Ответить
Развернуть ветку
Ronan B

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

Ответить
Развернуть ветку
Ronan B

Попробую позже ещё раз воспользоваться вашим сервисом на другом проекте, если и там такая же беда, то уж простите))

Ответить
Развернуть ветку
AM77

Бесполезный он может быть для Вас, но многих выручил. И я в их числе. Классный проект!)

Ответить
Развернуть ветку
VVV
Автор

Может быть, но технически эти "связки" откроют такие бездны проблем, что нет уж, спасибо. И, да, это действительно на 1 из 100 сайтов (а то и реже).

Ответить
Развернуть ветку
Slavko Slavko

какой бюджет ушел на разработку?

Ответить
Развернуть ветку
VVV
Автор

Никакого. Я сам разработчик.

Ответить
Развернуть ветку
Рафаэль

не парсит варианты товара, сервис .....

Ответить
Развернуть ветку
VVV
Автор

Добрый день, довольно интересно писать отзывы в статье на VC, но почему бы и нет, правда :)

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

P.S. Иногда получается такое парсить, если вариации товара нормально переключаются без тонны JS на странице. Зависит от сайта. Тут это было не так.

Ответить
Развернуть ветку
AM77

Идея, чтобы пробить потолок. Сделайте конструктор интернет-магазина с отдельным тарифом)

Ответить
Развернуть ветку
VVV
Автор

Есть "Витрины", но это просто список товаров. Прямо магазин проще создать чем-то другим, это уже совершенно другая сфера.

Ответить
Развернуть ветку
AM77

Что может раздражать (меня раздражает, поэтому делюсь личным мнением):

1) Нет возможности закрыть/отказаться от обучения

2) Если авторизоваться, перейти на главную, то показывается кнопка "вход/регистрация". Но я уже авторизован.. Кликнув по ней, я попаду в кабинет. Но визуально это смущает.

3) Если загрузить файл, например, yml, то выдается уведомление красным (загрузить другой файл?)... а выглядит, будто файл не загрузился. Красный - это цвет ошибки))

4) Дайте бонусы за идеи и пожелания xD

В целом, сервис классный + хорошая поддержка.

Ответить
Развернуть ветку
VVV
Автор

1) Esc :) Поверьте, очень многим не стоит отказываться от обучения, я бы сказал процетам 90%

2) Потому что на основном сайте нет ничего, что бы зависело от авторизации, но учтем

3) Учтем, спасибо

4) Посмотрите первоначальное обучение до конца (видимо уже на новом аккаунте), там есть бонус :)

Ответить
Развернуть ветку
AM77

Бонус в виде партнерской программы с 10%?)))

Еще серия ошибок:

У вас есть емейл рассылки. Верно? Так вот есть рассылка "Бонусы для вас, НИКНЕЙМ, от Q-Parser". И у меня отдают 404 ошибкой ссылки из письма. Например /bonus и /referral ))

А еще есть ошибка в расчетах бонуса: "Итого вам будет начислено: 145 + 595 * 10% = 74 руб. " ... но должны начислить 145 + 59.5 = ..

Ответить
Развернуть ветку
VVV
Автор

Нет. Если завершить первое обучение, там есть промокод на скидку.

Спасибо, проверим эти письма. Недавно менялся весь сайт и внутри и снаружи, так что да, хватает таких правок

Ответить
Развернуть ветку
AM77

После парсинга, на вкладке "редактирование" есть разные опции. Если я выберу 10 изменений, то потом могу их сортировать вверх/вниз. А также могу удалить. Но не хватает вот какого функционала: 1) копирование (чтобы на основе текущего сделать еще изменение) 2) редактирование текущего изменения

Ответить
Развернуть ветку
20 комментариев
Раскрывать всегда