Добрый день. Мы собираем информацию о товарах, и среди этой информации есть штрихкоды. Мне показалось, что именно они имеют ценность в том числе в отрыве от остальных данных, и что их проще всего выложить в открытый доступ. Получилась база на 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)
 - Chuvi16.11.2022 10:40+4- уточните, пожалуйста, в чём смысл жать текстовые файлы в zip перед выкладыванием в гит? Чтобы по ним не работал diff?  - Razoomnick Автор16.11.2022 14:17+1- Получился текстовый файл на 300+ мегабайт. Я хотел сэкономить немного времени тем, кто будет его скачивать. Да, гит и сам умеет сжимать репозитории, но насколько я знаю - целиком, а не по одному файлу. - Что касается работы diff, то если буду делать обновление регулярным, добавлю несжатую версию. 
 
 - Popadanec16.11.2022 11:11- У EAN-13 какая то беда с контролем. Постоянно попадаются разные товары которые зарегистрированы на один код. К этому ещё добавляются производители, которые периодически зачем то меняют ШК на упаковке(вес, количество остаётся теми же). 
 Плюс избранные могут вообще не печатать его на упаковке, печатать с ошибками(так что ни один сканер не считывает) или в низком разрешении. - makapohmgn17.11.2022 10:21- Потому что нет единого органа контроля, вроде как. Есть несколько разрозненных организаций и вряд ли они между собой пересечения как-то разруливают. Да и производитель пожет сам придумать код от балды, чтобы никому не платить)) 
 
 
           
 

Wesha
Я просто оставлю это здесь.