Как я могу искать данные о книге из ее номера штрих-кода? [закрытый]


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

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

там, кажется, много веб-API, чтобы сделать это, в том числе Амазонка и Библиотека Конгресса. Но все это очень сбивает меня с толку. То, что я действительно просто хочу, - это одна функция более высокого уровня, которая принимает номер штрих-кода UPC и возвращает некоторые основные данные о книге.

13 69

13 ответов:

есть очень простое веб-решение на основе по адресу ISBNDB.com что вы, возможно, захотите посмотреть.

Edit: обновлена ссылка на документацию API, теперь доступна и версия 2

http://isbndb.com/api/v1/docs

http://isbndb.com/api/v2/docs

вы можете быть запущены всего за несколько минут (эти примеры из API v1):

  • регистрация на сайте и получить ключ для использования API
  • попробуйте URL, как:

    http://isbndb.com/api/books.xml?access_key={yourkey}&index1=isbn&results=details&value1=9780143038092

the results=details получает дополнительную информацию, включая номер каталога карт.

в стороне, как правило, штрих-код 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 (Дьюи); Google не делает. API WorldCat делает это, но вам нужно быть библиотекой OCLC, чтобы использовать ее.

проблема ISBN/UPC является сложной. Предпочитайте ISBN, если вы можете их найти. Массовый рынок книги в мягкой обложке иногда спорт СКП снаружи и ISBN внутри.

члены LibraryThing разработали несколько страниц по этому вопросу и об усилиях по сопоставлению двух:

Если вы покупаете от границ штрих-коды вашей книги все будут наклеены с их собственными внутренними штрих-кодами (называется "BINC"). Самое досадное, что любой клей, который они используют, становится все труднее и труднее удалить чисто с течением времени. Я не знаю API, который преобразует их. Библиотека все делает это с помощью screenscraping.

для API я бы пошел с Amazon. LibraryThing-это хороший вариант без API, разрешающий BINCs и добавляющий 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 Web Services. Но это предполагает, что amazon имеет книгу и отсканировал в UPC.

вы также можете попробовать UPCdatabase at http://www.upcdatabase.com/item/ {UPC}, но это также неполно - по крайней мере, он растет..

база данных библиотеки Конгресса также не завершена с UPCs до сих пор (хотя она довольно всеобъемлюща), и ее труднее получить автоматизированный.

В настоящее время, похоже, вам придется написать это самостоятельно, чтобы иметь высокоуровневый поиск, который возвращает простую информацию (и пробует каждую службу)

похоже на работу, которую может сделать для вас небольшая компания по разработке программного обеспечения...

более серьезно, есть службы, которые предоставляют интерфейс к каталогу ISBN, www.literarymarketplace.com.

ВКЛ worldcat.com - ты можешь создать URL-адрес с помощью ISBN это приведет вас прямо к странице сведений о книге. Эта страница не так полезна, потому что она все еще очищает HTML, чтобы получить данные, но у них есть ссылка для загрузки данных книги через пару "стандартный формат.

например, их демо-книга:http://www.worldcat.org/isbn/9780060817084 Имеет ссылку для скачивания в формате " EndNotehttp://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, и поэтому база данных не является свободно доступной. Элемент UPCdatabase сайт, упомянутый Филиппом, - это начало, как и UPCData.info, но они введены пользователем-что означает неполный и, возможно, неточный.

вы всегда можете войти в UPC в Google и получить хит, но это не очень автоматизировано. Но он делает это правильно большую часть времени.

Я думал, что я вспомнил, как Джон Юделл делал что-то подобное (например, посмотреть этот), но он был чисто основан на ISBN.

Похоже, вы нашли новый проект для кого-то, чтобы работать!

Если вы хотите использовать Amazon, вы можете легко реализовать его с помощью LINQ to Amazon.

работая в библиотечном мире, мы просто подключаемся к пропуску LMS в штрих-коде, и hey presto back возвращает данные. Я считаю, что есть ряд бесплатных поставщиков LMS - Google для "open source lms".

Примечание: это, вероятно, работает с ISBN...

вы можете найти PHP реализованный инструмент поиска ISBN в Dawson Interactive.

Как насчет outpan.com? 20 миллионов книг, доступных через веб-сайт и API, совершенно бесплатно. Лучше всего работает с ISBN-13

Я часто рекомендую использовать API партнерского продукта Amazon (проверьте это здесь https://affiliate-program.amazon.com), однако есть и несколько других доступных вариантов.

Если вы хотите, чтобы гарантировать точность данных, вы можете пойти с платным решением. GS1-это организация, которая выдает коды 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 для предоставления именно таких данных доступ.

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

надеюсь, что это поможет вам, или какой-то будущий читатель, в некотором роде.

Обновлено

наш API теперь живет -https://blinked.in/api - и мы бросили в 100 бесплатных звонков в день, и вы можете заработать кредит, помогая нам открыть новые штрих-коды - https://blinked.in/bandwidthaccount