Форум OlegON > Ресурсы OlegON > Вопросы сервера > База штрихкодов

В феврале 2017 проводятся работы по миграции : База штрихкодов

19.04.2024 10:01


15.02.2017 09:06
OlegON
 
Поскольку я решил базу вернуть в нормальное состояние и отказаться от MediaWiki, сейчас могут быть различные сбои и пропадание незадекларированного функционала. В первую очередь я сломаю авторизацию не разработчиком. Скорее всего, для Энциклопедии будет работать форумная авторизация.

В эту тему буду сваливать различные текстовки, которые есть в MediaWiki, просто для памяти. Можете их игнорировать. Пожелания и предложения по миграции функционала можете оставить ниже. Я немного приболел, это сильно тормозит процесс, тем не менее, почти весь движок я переписал, переделал базу и скоро перенесу все на новое.

Цитата:
Этот ресурс - база штрихкодов, она предназначена для сбора и стандартизации любой справочной информации о товарах.

К такой информации относятся различные наименования товаров, которые были помечены данным штрихкодом, его история цен, описание состава, комментарии и впечатления покупателей.

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

Я считаю, что информация должна быть общедоступной. Поэтому выкладываю те несколько миллионов штрихкодов, которые у меня скопились за время существования предыдущей версии проекта на Форуме, в свободный доступ и предлагаю сообществу пополнять этот ресурс. Доступ бесплатный. Ограничения могут накладываться только на автоматизированные средства, пытающиеся скачать Энциклопедию или ее значительную часть. Извините, у меня нет безграничных ресурсов, чтобы поддерживать такие скачки нагрузки.

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

Для удобства пользователей и поиска по Энциклопедии, ключевым связывающим свойством товара является штрихкод товара.

По всем вопросам и предложениям, связанным с проектом, Вы можете обращаться по указанным здесь контактам.
Цитата:
Для пополнения базы Энциклопедии необходимо выполнить запрос к специальной служебной странице, указав параметры

ФЕРРОГЕМАТОГЕН&c=БАД&l=КЛЮЧ&u=Olegon&p=Россия&q=1шт.

Параметры:
b - штрихкод (обязательный параметр, только цифры)
g - наименование товара (обязательный параметр)
l - ключ, полученный при [[Регистрация разработчиком|регистрации разработчиком]] (если не регистрируетесь - не указываете)
u - имя пользователя Энциклопедии (Вы видите его справа вверху при просмотре сайта с компьютера), к которому по адресу почты привязан ключ (без указания ключа предыдущим параметром не указывается)
p - производитель товара, с обязательным указанием страны
q - количество с единицей измерения (например, 1шт. или 1кг.)
c - группа классификатора товара

можно только добавить товар. Изменить существующую карточку невозможно. В случае именного добавления карточки, на ключ будет добавлено три балла.<br>
При обнаружении попыток внесения мусора, спама и прочих, угрожающих ресурсу действий, учетная запись будет заблокирована, независимо от количества баллов.
Цитата:
Для обновления цены на товар в Энциклопедии необходимо выполнить запрос к специальной служебной странице, указав параметры
<pre>

</pre>
Параметры:
b - штрихкод (обязательный параметр, только цифры)
l - ключ, полученный при [[Регистрация разработчиком|регистрации разработчиком]] (если не регистрируетесь - не указываете)
u - имя пользователя Энциклопедии (Вы видите его справа вверху при просмотре сайта с компьютера), к которому по адресу почты привязан ключ (без указания ключа предыдущим параметром не указывается)
p - цена на товар, необходимо вводить текущую цену, не старше двух недель. Она будет привязана к текущему месяцу года и местоположению, которое определится внутренними механизмами базы по IP-адресу. В связи с этим просьба не загружать цены старые и из другого местоположения.


Цену можно внести только с зарегистрированной учетной записи или с ключом разработчика. Анонимное внесение/изменение цены не разрешается.

При обнаружении попыток внесения мусора, спама и прочих, угрожающих ресурсу действий, учетная запись будет заблокирована, независимо от количества баллов.
Цитата:
На URL необходимо послать GET-запрос, в котором передать параметры code и key. В первом параметре передается штрихкод, во втором - ключ доступа, выданный при [[Регистрация разработчиком|регистрации разработчиком]] или 1 (отсутствие ключа).

Система вернет текст с разделителями, построчно будут перечислены все обнаруженные комбинации с данным штрихкодом (строки разделяются переводом строки, т.е. \n).

В каждой строке через разделитель (символ с кодом 2, т.е. chr(2)) будет выведено наименование, единица измерения (например шт или кг) и количество товара данной единицы измерения, закрепленной за этим штрихкодом.

Данные возвращаются в кодировке UTF-8, можно указать в запросе параметр win=1, тогда будет использована кодировка CP1251.

За каждый полученный запрос с ключом система снимает со счета один балл, если найдена хоть одна запись.

Если произвести поиск с ключом по штрихкоду 0, то система вернет количество оставшихся оплаченных попыток. В этом случае попытки не уменьшаются.

В случае поиска без ключа, попытки не уменьшаются, но на запросы распространяются общие лимиты по их частоте.
Цитата:
Для того, чтобы получить описание карточки текстом, достаточно на адрес (переходить на него в браузере нет смысла - будет пустая страница)



отправить POST-запрос с двумя параметрами:

card - заголовок статьи, т.е. штрикод карточки
например, card=4620746221024

key - ключ (пока не используется)
например, key=0

В результате правильного запроса будет выдано текстовое содержимое карточки (без HTML-оформления и прочего), либо NO_RESULT, если такая карточка не была обнаружена. Обратите внимание, что при использовании HTTP/2 curl-запросы (а это большинство софта) могут выдавать ошибку "curl: (92) HTTP/2 stream 1 was not closed cleanly: REFUSED_STREAM (err 7)" или вообще ничего не выдавать. Поэтому, при каких-то непонятных ошибках используйте HTTP/1.1

Большинство статей стандартизировано и легко поддается разбору.

Вот пример с использованием штатной утилиты curl:
curl --http1.1 -d 'card=4620746221024&key=0'

Этот вариант получения карточек из базы бесплатный и лимитирован только частотой запросов. Я не могу на данный момент гарантировать какие-либо сроки существования этого API и стабильность его формата, посмотрим, что даст опыт его использования. Дайте мне знать, если Вы будете заинтересованы в его сохранении.
Цитата:
Регистрироваться разработчиком не обязательно, однако это делает правки именными, позволяет пользоваться именными сервисами и накапливает бонусные баллы за внесенные карточки. Обязательно указывайте емейл, который указывали при регистрации учетки в Энциклопедии.

Антибот-код доступа для регистрации - число, которое уже введено в поле кода, увеличенное на три. Т.е., если в поле указано 11, то надо ввести 14.

[https://barcodes.olegon.ru/register.php Регистрация разработчиком]

16.02.2017 22:32
volk13
 
Не знаю, где лучше задать свои вопросы, попробую здесь.

Несколько дней назад я воспользовался возможностью оплатить попытки на скачивание информации о товаре посредством API. Сейчас я не вижу такой возможности, поэтому вопросы:

1. Как сейчас можно произвести оплату дополнительных попыток на получение GET-запросом информации о штрихкоде?
2. Изменится ли структура запроса и формат возвращаемых данных (сейчас csv) если да, то когда и где можно будет узнать об этих изменениях, чтобы заранее приготовиться к ним?
3. Останется ли в принципе возможность получения информации посредством запросов?

Заранее благодарю за ответы.
17.02.2017 07:30
OlegON
 
1. Где-то потерял ссылку https://olegon.ru/market/buy_barcode.php
2. Я не отключал безлимитные CSV-запросы, не собираюсь это делать и дальше. Сейчас они, правда, указывают в старую базу, которую я еще не пополнил большим количеством новых карточек, что собираюсь сделать с новой. Но, в любом случае, этот вариант сохранится.
3. Не только останется, но и расширится, ради чего и ушел от Wiki, где информация хранилась скопом.
26.02.2017 15:32
volk13
 
Возникли ещё вопросы, связанные с миграцией:

1. База в формате CSV является подмножеством бызы в формате JSON? Т.е. если EAN найден в базе CSV, он обязательно будет присутствовать и в базе JSON? Или всё-таки возможны такие случаи, что в CSV штрихкод есть, а в JSON его нет?
2. В формате JSON есть такой код возврата "409 - слишком частые запросы". Можно уточнить - что под этим подразумевается и какие конкретно ограничения накладываются на частоту/количество запросов?
3. Для формата CSV есть режим безлимитных (платных) запросов. Есть-ли (будет-ли) такой режим для формата JSON, как выглядит такой запрос (пример строки), и будут ли (или уже есть) ограничения на частоту запросов именно уже для безлимитного режима?
Заранее спасибо!
26.02.2017 18:05
OlegON
 
1. В настоящий момент это две копии базы, в ближайшее время CSV будет перенесен на новую базу, куда будет влита еще гора штрихкодов. Я не только разрабатываю заново, но и тестирую, на все нужно время. Планирую, что миграция закончится в феврале, а дальше уже будет развитие функционала.

2. Это обозначает, что с вашего IP идет большое количество запросов в минуту. Детали я раскрывать не буду, поскольку очень много желающих эту защиту обойти, да и меняться правила будут. Цель - снижение нагрузки на сервер, очень много попыток заддосить ресурс выкачиванием базы. Обязательно будет предусмотрен безлимитный вариант для оплачивающих и пополняющих базу.

3. Будет обязательно и безлимитный вариант, миграция в самом разгаре, но я - семейный человек, и иногда отдыхаю. Все подробности обязательно опишу в этом разделе. Скорее всего, безлимитный вариант будет ограничен уже исключительно техническими возможностями (это около 1500 запросов в секунду по прошлым тестам).
16.03.2017 16:09
BotMan
 
Есть четыре базы, Пром товары, Прод товары, Зоотовары, Автозапчасти (все что обслуживаю).
Могу Экспортировать и прикрепить, если нужно ?
16.03.2017 16:16
OlegON
 
Отлично, все нужно :)
Желательно штрихкод, название, единица измерения, страна/производитель. Но, хотя бы штрихкод-название.
Часовой пояс GMT +3, время: 10:01.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.