php - para - ¿Cómo obtener un título del libro de un número de ISBN?
isbn libros (10)
Es posible que desee buscar en LibraryThing , tiene una API que haría lo que quiera y que manejan cosas como el mapeo de varios ISBN para diferentes ediciones de un solo "trabajo".
Estoy planeando crear un pequeño sitio web para mi colección personal de libros. Para automatizar un poco el proceso, me gustaría crear la siguiente funcionalidad:
El sitio web me pedirá el número ISBN del libro y luego automáticamente buscará el título y lo agregará a mi base de datos.
Aunque estoy interesado principalmente en hacer esto en php, también tengo algunas ideas de implementación de Java para esto. Creo que también podría ser útil si la respuesta fuera tan independiente del lenguaje como fuera posible.
No lo he probado, pero eche un vistazo a isbndb
Descripción API: Introducción
La interfaz de programación de aplicaciones de acceso remoto (API) de ISBNdb.com está diseñada para permitir que otros sitios web y aplicaciones independientes utilicen la vasta colección de datos recopilados por ISBNdb.com desde 2003. Al momento de escribir esto, en julio de 2005, los datos incluyen casi 1,800,000 libros; casi 3,000,000 millones de registros de la biblioteca; cerca de un millón de sujetos; cientos de miles de registros de autores y editores analizados a partir de datos de la biblioteca; más de 10,000,000 de registros de precios reales e históricos.
Algunas ideas de cómo se puede utilizar la API incluyen:
- Cataloguing home book collections - Building and verifying bookstores'' inventories - Empowering forums and online communities with more useful book references - Automated cross-merchant price lookups over messaging devices or phones
Al utilizar la API, puede buscar información por palabras clave, por ISBN, por autores o editores, etc. En la mayoría de los casos, la API es lo suficientemente rápida para ser utilizada en aplicaciones interactivas.
Los datos están fuertemente entrecruzados: a partir de un libro puede obtener información sobre sus autores, luego otros libros de estos autores, luego sus editores, etc.
La API está destinada principalmente para ser utilizada por programadores. La interfaz se esfuerza por ser independiente de la plataforma y el lenguaje de programación al emplear protocolos estándar abiertos y formatos de mensaje.
Para obtener datos para un número de ISBN dado, necesita interactuar con algún servicio en línea como isbndb . Una de las mejores fuentes de información bibliográfica es el servicio web de Amazon. Le proporciona toda la información bibliográfica + portada del libro.
Este es el fundador de LibraryThing. No tenemos nada que ofrecer aquí, así que espero que mis comentarios no me parezcan interesantes.
En primer lugar, el comentario sobre los números de Amazon, ASIN y ISBN es incorrecto de varias maneras. En casi todas las circunstancias en que un libro tiene un ISBN, el ASIN y el ISBN son los mismos. ISBNs no son ahora 13 dígitos. Por el contrario, los ISBN pueden ser 10 o 13. Los ISBN de diez dígitos se pueden expresar como números de 13 dígitos comenzando con 978, lo que significa que cada ISBN actualmente existente tiene una forma de 10 y 13 dígitos. Hay todo tipo de bibliotecas disponibles para convertir entre ISBN10 y ISBN13. Básicamente, agrega 978 al frente y vuelve a calcular el dígito de suma de comprobación al final.
ISBN13 se inventó porque los editores se estaban quedando sin ISBN. En el futuro cercano, cuando comiencen a usarse ISBN13 basados en 979, no tendrán un ISBN10 equivalente. Que yo sepa, no hay libros publicados con números ISBN basados en 979, pero están disponibles muy pronto. De todos modos, el resto de la historia es que Amazon usa el formulario ISBN10 para todos los 978 ISBN10. En cualquier caso, independientemente de si Amazon utiliza ASIN de diez o trece dígitos, puede buscar en Amazon por muy bien.
Personalmente, no pondría ISBN DB en la parte superior de su lista. ISBN DB extrae de varias fuentes, pero no es tan completo como Amazon o Google. Más bien, buscaría en Amazon -incluidas las diversas Amazonas internacionales- y luego la nueva API de Google Book Data y, después de eso, la API de OpenLibrary. Para libros que no están en inglés, hay otras opciones, como Ozone para libros rusos.
Si le interesan los datos de la más alta calidad, o si tiene algún libro publicado antes de 1970, querrá examinar los datos de las bibliotecas, disponibles por el protocolo Z39.50 y, por lo general, en formato MARC o, con algunas bibliotecas en Dublin Core, utilizando el protocolo SRU / SRW. El formato MARC es, para un programador moderno, algo bastante extraño. Pero, uno lo obtiene, también es mejor información e incluye campos útiles como LCCN, DDC, LCC y LCSH.
LibraryThing ejecuta una biblioteca casera de Python que consulta unas 680 bibliotecas y convierte los muchos sabores de MARC en XML compatible con Amazon, con extras. Actualmente estamos reacios a lanzar el código, pero podemos estar lanzando un servicio pronto.
Como alternativa a isbndb (que parece ser la respuesta perfecta), tuve la impresión de que podía pasar un ISBN a la URL de un producto de Amazon para ir directamente a la página de Amazon del libro. Si bien esto no devuelve programáticamente el título del libro, podría haber sido una característica adicional útil en caso de que desee vincular las evaluaciones de usuarios de Amazon desde su base de datos.
Sin embargo, este enlace parece mostrar que estaba equivocado. En realidad, lo que Amazon usa es el número ASIN y si bien solía ser el mismo número de ISBN de 10 dígitos, ya no son el único tipo: los ISBN ahora tienen 13 dígitos (aunque hay una conversión directa del tipo antiguo de 10 dígitos) )
Pero lo más útil es que el mismo enlace habla de la API de Amazon que puede convertir de ISBN a ASIN y es probable que también le permita buscar títulos y otra información. Está dirigido principalmente a los afiliados de Amazon, pero sin duda podría hacer el trabajo si por alguna razón isbndb no lo hace.
Editar: Tim Spalding arriba señala algunos hechos prácticos sobre los ISBN: era un tanto demasiado pesimista al suponer que los ASIN ya no se corresponderían.
También puede probar esta base de datos: http://www.usabledatabases.com/database/books-isbn-covers/
Tiene más libros / ISBN que la mayoría de los servicios web que actualmente puede encontrar en la web. Pero es probablemente una exageración para su pequeño sitio.
Echa un vistazo al ISBN DB API . Es un servicio web simple basado en REST. No lo he probado, pero un amigo ha tenido experiencias exitosas con él.
Le dará título del libro, información del autor y, dependiendo del libro, el número de otros detalles que puede usar.
Pruebe https://gumroad.com/l/RKxO
Compré esta base de datos hace aproximadamente 3 semanas para una aplicación de citas de libros que estoy haciendo. No he tenido problemas de calidad y se ha encontrado prácticamente cualquier libro que haya escaneado. El único problema es que proporcionan el archivo en CSV y tuve que convertir 20 millones de líneas, lo que me llevó casi una hora. Además, las actualizaciones mensuales no son delta y se envía toda la base de datos, que funciona para mí, pero podría ser un trabajo para otros.
Aunque las otras respuestas son correctas, esta explica el proceso con un poco más de detalle. Este usa la API GOOGLE BOOKS.
https://giribhatnagar.wordpress.com/2015/07/12/search-for-books-by-their-isbn/
Todo lo que necesitas hacer es
1. Crea una solicitud HTTP apropiada
2. Enviar y recibir el objeto JSON que contiene detalles sobre el libro
3. Extraiga el título de la información recibida
La respuesta que obtienes es en JSON. El código proporcionado en el sitio anterior es para NODE.js, pero estoy seguro de que no será difícil reproducirlo en PHP (o en cualquier otro idioma).
Google tiene su propia API para Google Books que le permite consultar fácilmente la base de datos de Google Book. El protocolo está basado en JSON y puede ver la información técnica al respecto aquí .
Básicamente, solo tiene que solicitar la siguiente URL:
https://www.googleapis.com/books/v1/volumes?q=isbn:YOUR_ISBN_HERE
Esto le devolverá la información sobre el libro en formato JSON.