¿Cómo puedo buscar datos sobre un libro a partir de su número de código de barras? [cerrado]


Estoy construyendo la aplicación de biblioteca más simple del mundo. Todo lo que quiero hacer es escanear el UPC (código de barras) de un libro usando un escáner típico (que solo escribe los números del código de barras en un campo) y luego usarlo para buscar datos sobre el libro... como mínimo, título, autor, año de publicación y el número de catálogo Decimal o de la Biblioteca del Congreso de Dewey.

El objetivo es imprimir una pequeña etiqueta ("etiqueta del lomo") con el número de catálogo de la tarjeta que puedo pegar en el lomo del libro, y luego puedo ordenar los libros por número de catálogo de tarjetas en los estantes de la biblioteca de nuestra empresa. De esa manera, los libros sobre temas similares tenderán a estar cerca unos de otros, por ejemplo, si sabes que estás buscando un libro sobre contabilidad, todo lo que tienes que hacer es encontrar algún libro sobre contabilidad y verás la otra media docena que tenemos justo al lado, lo que hace que sea conveniente navegar por la biblioteca.

Parece que hay un montón de API web para hacer esto, incluyendo Amazon y el Biblioteca del Congreso. Pero todo eso es extremadamente confuso para mí. Lo que realmente solo quiero es una sola función de nivel superior que toma un número de código de barras UPC y devuelve algunos datos básicos sobre el libro.

Author: A.H., 2008-09-20

13 answers

Hay una solución basada en web muy sencilla en ISBNDB.com que tal vez quieras ver.

Editar: Enlace actualizado de la documentación de la API, ahora también está disponible la versión 2

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

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

Puede estar listo y funcionando en solo unos minutos (estos ejemplos son de API v1):

  • regístrese en el sitio y obtenga una clave para usar la API
  • Prueba a URL como:

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

The results=details obtiene detalles adicionales incluyendo el número de catálogo de la tarjeta.

Como un aparte, generalmente el código de barras es el isbn en isbn10 o isbn13. Solo tienes que eliminar los últimos 5 números si estás usando un escáner y recoges 18 números.

Aquí hay una respuesta de ejemplo:

<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>
 61
Author: curtisk,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-08-31 01:42:18

Nota: Soy el tipo de la biblioteca, así que esto es autopromoción parcial.

Echa un vistazo a esta respuesta de StackOverflow, que cubre algunas buenas maneras de obtener datos para un ISBN dado.

Para sus problemas, Amazon incluye un DDC simple (Dewey); Google no. La API de WorldCat sí, pero usted necesita ser una biblioteca de OCLC para usarla.

La cuestión del ISBN/UPC es compleja. Prefiero el ISBN, si puedes encontrarlos. Mass market paperbacks a veces sport UPCs en el exterior y un ISBN adentro.

Los miembros de LibraryThing han desarrollado algunas páginas sobre el tema y sobre los esfuerzos para mapear los dos:

Si compras en Borders, los códigos de barras de tu libro se pegarán con sus propios códigos de barras internos (llamados "BINC"). Lo más molesto es que el pegamento que usan se vuelve más y más difícil de eliminar limpiamente con el tiempo. No conozco ninguna API que los convierta. LibraryThing lo hace mediante screenscraping.

Para una API, iría con Amazon. LibraryThing es una buena opción sin API, resolviendo BINCs y agregando DDC y LCC para libros que no los tienen mirando otras ediciones del " trabajo."

Lo que falta es la parte de la etiqueta. Alguien necesita crear una buena plantilla PDF para eso.

 16
Author: Community,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:02:46

Editar Sería bastante fácil si tuvieras ISBN. pero convertir de UPC a ISBN no es tan fácil como te gustaría.

Aquí hay un código javascript para ello de http://isbn.nu donde se hace en script

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;
}

Sin embargo, eso solo convierte de UPC a ISBN algunos de la época.

Es posible que desee mirar la página del proyecto de escaneo de código de barras , también: el viaje de una persona para escanear libros.

Para que sepas sobre Amazon Web Servicios. Pero eso supone que Amazon tiene el libro y lo ha escaneado en la UPC.

También puedes probar la UPCdatabase en http://www.upcdatabase.com/item / {UPC}, pero esto también está incompleto - al menos está creciendo..

La base de datos de la biblioteca del congreso también está incompleta con UPCs hasta ahora (aunque es bastante completa), y es más difícil de automatizar.

Actualmente, parece que tendría que escribir esto usted mismo para tener un alto nivel búsqueda que devuelve información simple (y prueba cada servicio)

 8
Author: Philip Rieck,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-20 06:08:54

Suena como el tipo de trabajo que uno podría conseguir que una pequeña empresa de software haga por usted...

Más en serio, hay servicios que proporcionan una interfaz para el catálogo ISBN, www.literarymarketplace.com.

El worldcat.com, puedescrear una URL usando el ISBN que te llevará directamente a una página de detalles del libro. Esa página no es tan útil porque sigue siendo HTML scraping para obtener los datos, pero tienen un enlace para descargar los datos del libro en un par "estándar" formato.

Por ejemplo, su libro de demostración: http://www.worldcat.org/isbn/9780060817084 Tiene un enlace de descarga en formato" EndNote " http://www.worldcat.org/oclc/123348009?page=endnote&client=worldcat.org-detailed_record , y puede cosechar los datos de ese archivo muy fácilmente. Eso está vinculado desde su propio número de OCLC, no el ISBN, sino el raspado para convertir que no es difícil, y aún pueden tener una buena interfaz para hacerlo.

 3
Author: davenpcj,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-20 03:57:09

Mi esposa bibliotecaria usa http://www.worldcat.org / , pero dejan de escribir ISBN. Si puedes escanear eso, estás de oro. Mirando algunos libros, parece que el UPC es el mismo o está relacionado con el ISBN.

Oh, estos tipos tienen una función para hacer la conversión de UPC a ISBN.

 2
Author: sblundy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-20 03:53:41

Usando el sitio web Lo de la biblioteca, puede escanear sus códigos de barras (todo el código de barras, no solo el ISBN, si tiene una "cuña" de escaneo, está de suerte) y construir su biblioteca. (Es una excelente red social - piense en StackOverflow para los entusiastas del libro.)

Luego, usando la sección HERRAMIENTAS, puede exportar su biblioteca. Ahora tiene un archivo de texto para importar / analizar y puede crear sus etiquetas, un catálogo de tarjetas, etc.

 1
Author: Doug L.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-20 03:57:24

Me temo que el problema es el acceso a la base de datos. Las empresas pagan para tener una UPC asignada y por lo tanto la base de datos no es de libre acceso. El sitio UPCdatabase mencionado por Philip es un comienzo, al igual que UPCData.info , pero son ingresados por el usuario which lo que significa incompletos y posiblemente inexactos.

Siempre se puede entrar en la UPC a Google y obtener un hit, pero eso no es muy automatizado. Pero lo hace bien la mayor parte del tiempo.

Pensé que recordaba a Jon Udell haciendo algo como esto (por ejemplo, ver esto), pero estaba puramente basado en ISBN.

¡Parece que has encontrado un nuevo proyecto para que alguien trabaje!

 1
Author: JohnMeyers,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-20 04:39:05

Si desea utilizar Amazon, puede implementarlo fácilmente con LINQ to Amazon.

 1
Author: Simon_Weaver,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-01-28 01:48:04

Trabajando en el mundo de la biblioteca, simplemente nos conectamos al pase LMS en el código de barras y hey presto regresa los datos. Creo que hay una serie de proveedores de LMS gratuitos-Google para "lms de código abierto".

Nota: Esto probablemente funciona fuera de ISBN...

 0
Author: Matt B,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-03-30 16:03:16

Puede encontrar una herramienta de búsqueda de ISBN implementada en PHP en Dawson Interactive.

 0
Author: cheekygeek,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-09-28 14:50:25

¿Qué tal outpan.com? 20 millones de libros, accesibles a través del sitio web y API, completamente gratis. Funciona mejor con ISBN-13

 0
Author: EnJayz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-05-25 20:13:36

Con frecuencia recomiendo usar La API de Afiliados de productos de Amazon (échale un vistazo aquí https://affiliate-program.amazon.com ), sin embargo hay algunas otras opciones disponibles también.

Si desea garantizar la exactitud de los datos, puede optar por la solución de pago. GS1 es la organización que emite códigos UPC, por lo que su información siempre debe ser precisa ( https://www.gs1us.org/tools/gs1-company-database-gepir).

También hay un número de bases de datos de terceros con información relevante como https://www.upccodesearch.com / o https://www.upcdatabase.com / .

 0
Author: mosca1337,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-04-23 20:04:11

Nada como una respuesta casi 5 años después del hecho, pero aquí está mi par de centavos brillantes vale la pena.

Actualmente estoy construyendo algo que haría el trabajo muy bien... https://blinked.in - lo que se está convirtiendo rápidamente en la mayor base de datos de códigos de barras UPC / EAN13 (hemos agregado más de 7 millones de códigos de barras solo en la última semana), mientras que todavía estamos en la etapa alfa de desarrollo, estamos introduciendo una API muy sencilla y de bajo costo para proporcionar este tipo de acceso a los datos.

Solo hemos estado en dev por un par de meses, pero ya tenemos una plataforma web estable, una base de datos en rápida expansión y el deseo de mantener las cosas simples.

Espero que esto le ayude a usted, o a algún futuro lector, de alguna manera.

Actualizado

Nuestra API ya está activa - https://blinked.in/api - y hemos lanzado un 100 llamadas gratis por día, y usted puede ganar crédito por ayudarnos a descubrir nuevos códigos de barras - https://blinked.in/bandwidthaccount

 -1
Author: null loop,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-05-05 01:35:14