Как я могу найти данные о книге по ее номеру штрих-кода?[закрыто]
-
01-07-2019 - |
Вопрос
Я создаю самое простое в мире библиотечное приложение.Все, что мне нужно, это сканировать UPC (штрих-код) книги с помощью обычного сканера (который просто вводит цифры штрих-кода в поле), а затем использовать его для поиска данных о книге...как минимум, название, автор, год публикации и либо десятичный номер Дьюи, либо каталожный номер Библиотеки Конгресса.
Цель состоит в том, чтобы распечатать крошечную наклейку («этикетка на корешке») с номером карточного каталога, которую я могу приклеить на корешек книги, а затем я смогу сортировать книги по номеру карточного каталога на полках в библиотеке нашей компании.Таким образом, книги по схожим темам будут располагаться рядом друг с другом. Например, если вы знаете, что ищете книгу по бухгалтерскому учету, все, что вам нужно сделать, это найти НЕКОТОРУЮ книгу по бухгалтерскому учету, и вы увидите еще полдюжины что у нас есть прямо рядом с ним, что позволяет удобно просматривать библиотеку.
Кажется, для этого существует множество веб-API, включая Amazon и Библиотеку Конгресса.Но все это меня очень сбивает с толку.На самом деле мне нужна одна функция более высокого уровня, которая принимает номер штрих-кода UPC и возвращает некоторые основные данные о книге.
Решение
На ISBNDB.com есть очень простое веб-решение, которое вы, возможно, захотите посмотреть.
Редактировать: Обновлена ссылка на документацию API, теперь доступна и версия 2.
Вы можете начать работу всего за несколько минут (эти примеры взяты из API v1):
- зарегистрируйтесь на сайте и получите ключ для использования API
попробуйте URL-адрес типа:
http://isbndb.com/api/books.xml?access_key=
{твой ключ}&index1=isbn&results=details&value1=9780143038092
Результат=детали получает дополнительную информацию, включая каталожный номер карты.
Кроме того, обычно штрих-код — это isbn либо в isbn10, либо в isbn13.Вам просто нужно удалить последние 5 цифр, если вы используете сканер и набираете 18 цифр.
Вот пример ответа:
<ISBNdb server_time="2008-09-21T00:08:57Z">
<BookList total_results="1" page_size="10" page_number="1" shown_results="1">
<BookData book_id="the_joy_luck_club_a12" isbn="0143038095">
<Title>The Joy Luck Club</Title>
<TitleLong/>
<AuthorsText>Amy Tan, </AuthorsText>
<PublisherText publisher_id="penguin_non_classics">Penguin (Non-Classics)</PublisherText>
<Details dewey_decimal="813.54" physical_description_text="288 pages" language="" edition_info="Paperback; 2006-09-21" dewey_decimal_normalized="813.54" lcc_number="" change_time="2006-12-11T06:26:55Z" price_time="2008-09-20T23:51:33Z"/>
</BookData>
</BookList>
</ISBNdb>
Другие советы
Примечание:Я парень из LibraryThing, так что это частичная самореклама.
Взгляни на этот ответ StackOverflow, в котором описаны некоторые хорошие способы получения данных по заданному ISBN.
Для решения ваших проблем Amazon включает простой DDC (Дьюи);Гугл нет.API WorldCat поддерживает эту функцию, но для ее использования необходимо быть библиотекой OCLC.
Вопрос ISBN/UPC сложен.Предпочитайте ISBN, если сможете их найти.На книгах в мягкой обложке для массового рынка иногда присутствуют UPC снаружи и ISBN внутри.
Члены LibraryThing разработали несколько страниц, посвящённых этой проблеме и усилиям по их сопоставлению:
- http://www.librarything.com/wiki/index.php/UPC
- http://www.librarything.com/wiki/index.php/CueCat:_ISBNs_and_Barcodes
Если вы покупаете у Borders, все штрих-коды вашей книги будут покрыты собственными внутренними штрих-кодами (так называемыми «BINC»).Самое неприятное, что какой бы клей они ни использовали, со временем его становится все труднее и труднее удалить.Я не знаю ни одного API, который их конвертирует.LibraryThing делает это путем очистки экрана.
В качестве API я бы выбрал Amazon.LibraryThing — хороший вариант без API, разрешающий BINC и добавляющий DDC и LCC для книг, в которых их нет, если посмотреть на другие издания «работы».
Чего не хватает, так это этикетки.Для этого кому-то нужно создать хороший шаблон PDF.
Редактировать Было бы довольно легко, если бы у вас был ISBN.но конвертировать UPC в ISBN не так просто, как хотелось бы.
Вот некоторый код JavaScript для этого из http://isbn.nu где это сделано в скрипте
if (indexisbn.indexOf("978") == 0) {
isbn = isbn.substr(3,9);
var xsum = 0;
var add = 0;
var i = 0;
for (i = 0; i < 9; i++) {
add = isbn.substr(i,1);
xsum += (10 - i) * add;
}
xsum %= 11;
xsum = 11 - xsum;
if (xsum == 10) { xsum = "X"; }
if (xsum == 11) { xsum = "0"; }
isbn += xsum;
}
Однако это преобразуется только из UPC в ISBN. некоторый времени.
Возможно, вы захотите посмотреть Страница проекта сканирования штрих-кода, тоже - путешествие одного человека по сканированию книг.
Итак, вы знаете о Веб-сервисы Amazon.Но это предполагает, что у Amazon есть книга и она отсканирована в UPC.
Вы также можете попробовать База данных UPC в http://www.upcdatabase.com/item/{UPC}, но это тоже неполнота - по крайней мере растёт..
Библиотека базы данных конгресса также пока неполна с помощью UPC (хотя она довольно обширна), и ее сложнее автоматизировать.
В настоящее время кажется, что вам придется написать это самостоятельно, чтобы иметь высокоуровневый поиск, который возвращает простую информацию (и пробует каждую службу)
Похоже на работу, которую можно поручить небольшой компании-разработчику программного обеспечения...
Если серьезно, существуют службы, обеспечивающие интерфейс к каталогу ISBN www.literarymarketplace.com.
На сайте worldcat.com вы можете создать URL-адрес, используя ISBN это приведет вас прямо на страницу с описанием книги.Эта страница не так уж полезна, потому что для получения данных все еще выполняется очистка HTML, но у них есть ссылка для загрузки данных книги в нескольких «стандартных» форматах.
Например, их демо-книга: http://www.worldcat.org/isbn/9780060817084Имеет ссылку для скачивания в формате EndNote. http://www.worldcat.org/oclc/123348009?page=endnote&client=worldcat.org-detailed_record, и вы можете очень легко собрать данные из этого файла.Это связано с их собственным номером OCLC, а не с ISBN, но конвертировать его несложно, и у них еще может быть хороший интерфейс для этого.
Моя жена-библиотекарь использует http://www.worldcat.org/, но они отключают ISBN.Если ты сможешь это отсканировать, ты золотой.Глядя на несколько книг, кажется, что UPC аналогичен ISBN или связан с ним.
Ой, эти парни есть функция преобразования из UPC в ISBN.
Использование веб-сайта Библиотечная вещь, вы можете сканировать свои штрих-коды (весь штрих-код, а не только ISBN — если у вас есть сканирующий «клин», вам повезло) и создать свою библиотеку.(Это отличная социальная сеть — вспомните StackOverflow для книголюбов.)
Затем с помощью раздела ИНСТРУМЕНТЫ вы сможете экспортировать свою библиотеку.Теперь у вас есть текстовый файл для импорта/анализа, и вы можете создавать этикетки, карточный каталог и т. д.
Боюсь, проблема в доступе к базе данных.Компании платят за присвоение UPC, поэтому к базе данных нет свободного доступа.А База данных UPC сайт, упомянутый Филиппом, является началом, как и UPCData.info, но они вводятся пользователем, что означает неполноту и, возможно, неточную информацию.
Вы всегда можете ввести СКП в Google и получить результат, но это не очень автоматизировано.Но в большинстве случаев он все делает правильно.
Мне показалось, что я помню, как Джон Уделл делал что-то подобное (например, видеть это), но это было чисто на основе ISBN.
Похоже, вы нашли новый проект, над которым можно поработать!
Если вы хотите использовать Amazon, вы можете легко реализовать это с помощью LINQ для Amazon.
Работая в мире библиотек, мы просто подключаемся к пропуску LMS в штрих-коде, и вот, данные возвращаются.Я считаю, что существует ряд бесплатных поставщиков LMS - Google для «lms с открытым исходным кодом».
Примечание:Вероятно, это работает с ISBN...
Вы можете найти инструмент поиска ISBN, реализованный на PHP, по адресу Доусон Интерактив.
Я часто рекомендую использовать Партнерский API продукта Amazon (проверьте это здесь https://affiliate-program.amazon.com), однако есть и несколько других вариантов.
Если вы хотите гарантировать точность данных, вы можете воспользоваться платным решением.ГС1 — это организация, которая выдает коды UPC, поэтому их информация всегда должна быть точной (https://www.gs1us.org/tools/gs1-company-database-gepir).
Существует также ряд сторонних баз данных с соответствующей информацией, такой как https://www.upccodesearch.com/ или https://www.upcdatabase.com/ .
Ничего подобного ответу спустя почти 5 лет после свершившегося факта, но вот моя пара блестящих пенни того стоит.
В настоящее время я создаю что-то, что отлично справится с этой задачей... https://blinked.in - база данных штрих-кодов UPC/EAN13 быстро становится крупнейшей (только за последнюю неделю мы добавили более 7 миллионов штрих-кодов), хотя мы все еще находимся на альфа-стадии разработки, мы представляем очень простой и недорогой API для обеспечить именно такой доступ к данным.
Мы занимаемся разработкой всего пару месяцев, но у нас уже есть стабильная веб-платформа, быстро расширяющаяся база данных и желание упростить задачу.
Надеюсь, это каким-то образом поможет вам или кому-то из будущих читателей.
Обновлено
Наш API теперь доступен - https://blinked.in/api - и мы сделали 100 бесплатных звонков в день, и вы можете заработать кредит, помогая нам находить новые штрих-коды - https://blinked.in/bandwidthaccount