Разработка поисковой системы для стартапа по продаже сложной техники
Как Evrone помог стартапу из Чикаго разработать поисковую систему и веб-сайт для продажи поддержанной техники и оборудования. Из этой статьи вы также узнаете, как собираются данные с других сайтов и торговых интернет площадок и зачем там машинное обучение.
В 2012 году Дэн Пинто и Дмитрий Рохфельд создали агрегатор, который автоматически собирает информацию о продаже станков и сельхозтехники.
Идея создания сервиса пришла к Дэну, когда он, следуя рабочему заданию, искал в интернете печатный станок. Задача оказалась непростой: такую машину нельзя купить на Ebay, а сравнение прайс-листов на тысяче разных сайтов заняло бы много времени. Тогда Дэн Пинто разработал технологию сканирования нужных ресурсов с дальнейшей выборкой и объединением данных. Он связался со своим другом детства, Дмитрием Рохфельдом, и они запустили стартап, который должен быть решить проблему поиска и систематизации информации о продаваемом оборудовании и технике.
Единый каталог решил проблему— больше не нужно перебирать тысячи предложений на разных сайтах в поисках нужного варианта. Machinio автоматически собирает и систематизирует данные разных листингов в одном месте, где продавец и покупатель могут сразу обсудить детали сделки.
Задача
Первая версия сервиса была написана самим Дэном Пинто. Со временем в команде Machinio появились менеджеры по продажам и первые регулярные контракты с продавцами техники. Стало понятно, что одновременно поддерживать код проекта и руководить им невозможно. Поэтому Machinio обратились в Evrone, чтобы усилить команду и помочь с разработкой платформы для поиска товаров.
Evrone отвечал за backend, ядро стартапа. В наши задачи входило объединение изначальных собственных разработок Machinio с нашей экспертизой.
Как собрать и обработать листинги с тысячи сайтов?
Информация с сайтов продавцов собирается в автоматическом режиме с помощью кроулеров, которые перебирают страницы и сохраняют нужные данные в базу. Самим продавцам не нужно ничего предоставлять. Они только подписывают договор с менеджерами Machinio, оплачивают подписку (в случае, если работают на платной основе), а вся информация забирается с их сайтов автоматически и попадает в Machinio.
Там, где не справляются собственные кроулеры Machinio, помогает Ferrum, open-source решение, созданное при поддержке Evrone. Это позволило нам собрать информацию для агрегатора, например, с сайтов, использующих React или Vue.
Сайт каждого продавца уникален, а информация разнородна. К счастью, большинство площадок имеют схожую разметку, поэтому, написав один кроулер, в дальнейшем его код можно адаптировать для других сайтов.
Большей проблемой является то, что информация о товаре может быть неполной. Например, заполнены не все характеристики или фото не соответствует названию модели. Кроулер просто парсит каталоги с описаниями товаров в том виде, как они представлены на исходном сайте, а вторым этапом станет автоматическая проверка и валидация полученных данных.
В проекте задействовано машинное обучение — оно помогает категоризировать листинги, с которых получена информация. Модель обучена на конкретных листингах, и когда мы предлагаем модели новый, она анализирует текст и классифицирует его. Кроме этого в Machinio есть целая команда разработчиков, которые занимаются поддержкой классификаторов: по категориям, моделям и т.д.
Правда, иногда такая систематизация не нужна, потому что продают и совсем необычные лоты, которые невозможно добавить к уже существующим категориям. Однажды на продажу был выставлен целый завод вместе с оборудованием, стоимостью в несколько миллионов долларов. Конечно же, для такого объекта нужны отдельные характеристики. Тут машинное обучение точно не справится.
Отслеживаем изменения в данных
Бывает, что сайт клиента перестал работать, изменилась разметка или данные о технике. Для таких случаев есть система проверки данных: если на стороне продавца что-то перестало работать корректно, ему приходит сообщение и он устраняет поломки. Как правило выгрузка информации происходит каждый день, но не в реальном времени. Продажа и покупка тяжелой техники — медленный процесс, на рынке не так много больших компаний с часто обновляемым каталогом, поэтому real-time обновления не критичны.
Технологический стек
Machinio удалось создать наиболее полную базу подержаной техники. Но для того, чтобы ежедневно парсить более 20 000 сайтов, необходима серьёзная мощность. Сейчас парк машин состоит из 10-12 серверов. Разработчики отслеживают все метрики по нагрузке, и когда перестает хватать мощности, то в полуавтоматическом режиме подключаются резервные.
Вся система написана на Ruby on Rails, для поиска используется Apache Solr. Также позднее Machinio подключили Machine Learning, Tenderflow и Headless Chrome для кроулеров. Все настроено так, чтобы пользователь мог искать как по названию конкретных моделей, так и по случайным запросам и характеристикам.
В продукте реализована микросервисная архитектура, а для работы над кроулерами существует отдельная команда.
Метрики успеха
У Machinio есть несколько моделей взаимодействия с клиентами: подписка, планы или процент с продажи техники. Договор между продавцом и Machinio с фиксированной прибылью по подписке — самый распространенный вариант. Поэтому маркетинговая команда в первую очередь отслеживает такие метрики, как посещаемость сайта, клики, отказы и, конечно же, лиды. Все фичи, которые разработчики делают для сайта, являются результатами проверки гипотез и призваны улучшать вовлеченность пользователей.
По данным сервиса SimilarWeb на февраль 2020 года среднемесячный трафик сайта Machinio составил 670 000 пользователей, 71,79% из которых пришло из поисковых систем.
На рынке существуют похожие сервисы, но у Machinio есть несколько особенностей, которые помогают привлечь аудиторию:
- сервис оптимизирован для поисковых систем, его легко найти
- каталог содержит предложения в 190+ странах мира, что помогает пользователям найти наиболее удобные предложения
- покупатели проверяются перед размещением листингов, а фейковые запросы отсеиваются
Стартап Machinio привлек более $4,04 млн финансирования. В 2015 году Дэн Пинто и Дмитрий Рохфельд попали в список Forbes: 30 Under 30. В 2017 году был открыт второй офис компании — в Берлине, а в июле 2018 года основатели продали Machinio компании Liquidity Services, которая в настоящее время и осуществляет управление его активами.
Мы в Evrone гордимся тем, что помогли взлететь такому необычному стартапу. Наша экспертиза помогла Machinio развиться до нужного пользователям функционала, получить отличные метрики и достигнуть финансовых целей.