Добрый день. Мы собираем информацию о товарах, и среди этой информации есть штрихкоды. Мне показалось, что именно они имеют ценность в том числе в отрыве от остальных данных, и что их проще всего выложить в открытый доступ. Получилась база на 1 816 200 записей. Товары из нее встречались в продаже на российском рынке в период с начала 2021 до средины ноября 2022 года, это отличает нашу базу от некоторых других, которые есть в свободном доступе.
Где скачать?
Скачать можно на гитхабе либо у нас на сайте. База представлена в двух форматах:
CSV (barcodes_csv.zip). Файл формата csv можно открыть в текстовом редакторе. Блокнот справляется с файлом такого размера.
SQLite: (barcodes_db.zip). Файл barcodes.db является файлом базы данных SQLite. Его можно открыть в программе "DB Browser for SQLite". Сайт: https://sqlitebrowser.org. Скачать: https://sqlitebrowser.org/dl/
В обоих случаях структура записи следующая:
Id — идентификатор, уникальный в рамках таблицы.
Category — категория товарав том же виде, что и в источнике, где найден штрих-код. Мы старались брать наиболее конкретную категорию в иерархии.
Vendor — бренд товара.
Name — название товара.
Article — артикул производителя товара.
Barcode — штрихкод.
Какие категории представлены?
Потребительские товары, кроме одежды, обуви, продуктов и лекарств. Некоторые товары промышленного назначения.
Откуда данные?
Мы собрали их своими силами за два года. Мы парсим довольно много сайтов, больше трехсот, но медленно, на самые популярные приходится 2-3 запроса в минуту, на менее популярные — несколько запросов в час. С посещенных страниц мы забираем название товара, его цену, описание, характеристики и ссылки на изображения. Если по разметке страницы можно выделить категорию, бренд, артикул в отдельные поля — выделяем, если нет — оставляем название как есть. В итоге у нас получилась база, где есть 70 миллионов товаров, 160 миллионов изображений и миллиард с небольшим характеристик.
Среди характеристик иногда встречаются штрихкоды. Именно их я собрал в отдельный файл и выложил в открытый доступ.
Стоит оговориться, что это сырые данные, и среди них могут встречаться ошибки. Например, не все из штрихкодов пройдут валидацию по какому-либо из стандартов: EAN-13, EAN-8, UPC-A или UPC-E. Кроме того, некоторые штрихкоды встречаются больше одного раза. Это тоже объяснимо: значит, они встречались на нескольких разных сайтах, и, скорее всего, ссылаются на один и тот же товар. Но не обязательно: некоторые компании сами придумывают штрихкоды для своей продукции по принципу “подойдут любые 13 цифр”.
Что мы делаем с этими данными?
По большому счету, именно штрихкоды для нас не играют большой роли. Они есть на примерно два процента товаров в базе, и поэтому мы не можем использовать их как основной фактор для сопоставления товаров, только как вспомогательный, при этом не особо важный.
Раскрою тему. У нас есть большая база товаров. У клиента есть каталог его товаров (либо каталоги его поставщиков). Мы сопоставляем свои товары товарам из каталога клиента, и это позволяет автоматически найти изображения для товаров и заполнить характеристики. Об этом я уже написал несколько статей с довольно подробным описанием используемых подходов и алгоритмов: про сопоставление товаров, про автоматическое создание карточек, про поиск похожих товаров, про быстрый поиск по неточному соответствию среди ста миллионов записей.
Соответственно, штрихкоды участвуют в двух процессах:
Их совпадение является фактором, который позволяет (после некоторых дополнительных проверок) рассматривать товары из разных источников как один и тот же товар.
Мы можем заполнить штрихкод автоматически, если в каталоге клиента для какого-то товара его нет, а у нас в базе — есть.
Кстати, не стоит использовать два процесса одновременно, получается положительная обратная связь, и тогда ошибки получают дополнительное подтверждение.
В общем, мы делаем PIM-систему, и у нее есть некоторые возможности по автоматизации ручного труда.
Как вы можете использовать эти данные?
Как угодно. Никаких ограничений или условий нет. Мы просто делимся справочником с теми, кому он нужен. Кому нет, тот ничего не теряет.
Зачем это нужно нам?
Возможно, у кого-то, кто потом найдет эту статью через поисковик, будет стоять более широкая задача из области работы с товарами. Возможно, мы сможем ему помочь.
Комментарии (7)
Chuvi
16.11.2022 10:40+4уточните, пожалуйста, в чём смысл жать текстовые файлы в zip перед выкладыванием в гит? Чтобы по ним не работал diff?
Razoomnick Автор
16.11.2022 14:17+1Получился текстовый файл на 300+ мегабайт. Я хотел сэкономить немного времени тем, кто будет его скачивать. Да, гит и сам умеет сжимать репозитории, но насколько я знаю - целиком, а не по одному файлу.
Что касается работы diff, то если буду делать обновление регулярным, добавлю несжатую версию.
Popadanec
16.11.2022 11:11У EAN-13 какая то беда с контролем. Постоянно попадаются разные товары которые зарегистрированы на один код. К этому ещё добавляются производители, которые периодически зачем то меняют ШК на упаковке(вес, количество остаётся теми же).
Плюс избранные могут вообще не печатать его на упаковке, печатать с ошибками(так что ни один сканер не считывает) или в низком разрешении.makapohmgn
17.11.2022 10:21Потому что нет единого органа контроля, вроде как. Есть несколько разрозненных организаций и вряд ли они между собой пересечения как-то разруливают. Да и производитель пожет сам придумать код от балды, чтобы никому не платить))
Wesha
Я просто оставлю это здесь.