74 votes

Comment puis-je de données de recherche à propos d'un livre à partir de son numéro de code-barres?

Je suis en train de construire le monde la plus simple d'application de la bibliothèque. Tout ce que je veux être en mesure de faire est de scanner dans un livre de l'UPC (code à barres) à l'aide d'un typique scanner (qui vient de types les chiffres du code-barres dans un champ) et ensuite l'utiliser pour rechercher des données sur le livre... au minimum, titre, auteur, année de publication, et soit la Décimale de Dewey ou la Bibliothèque du Congrès, le numéro de catalogue.

Le but est d'imprimer un petit autocollant ("la colonne vertébrale de l'étiquette" avec la carte, le numéro de catalogue que je peux coller sur le dos du livre, et puis je peux trier les livres par carte, le numéro de catalogue sur les étagères dans notre société la bibliothèque. De cette façon, des livres sur des sujets similaires ont tendance à être à proximité les uns des autres, par exemple, si vous savez que vous êtes à la recherche pour un livre sur la comptabilité, tout ce que vous avez à faire est de trouver un livre sur la comptabilité et vous verrez l'autre demi-douzaine que nous avons juste à côté d'elle ce qui le rend idéal pour parcourir la bibliothèque.

Il semble y avoir beaucoup de web Api pour ce faire, y compris Amazon et la Bibliothèque du Congrès. Mais ceux-ci sont tous très confus pour moi. Vraiment ce que je veux juste un seul niveau supérieur de la fonction qui prend un code à barres UPC nombre et retourne des données de base sur le livre.

61voto

curtisk Points 8623

Il y a une manière très simple basé sur le web solution à ISBNDB.com que vous pouvez regarder.

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

Vous pouvez être opérationnel en quelques minutes seulement:

  • s'inscrire sur le site et obtenir une clé pour l'utilisation de l'API
  • essayez une URL de la forme:

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

Les résultats=détails obtient plus de détails, y compris la carte numéro de catalogue.

En aparté, en général, le code-barres est le numéro isbn dans isbn10 ou isbn13. Vous avez juste à supprimer les 5 derniers numéros si vous utilisez un scanner et de vous choisir jusqu'à 18 chiffres.

Voici un exemple de réponse:

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

8voto

Philip Rieck Points 21405

Edit Il serait assez facile si vous aviez ISBN. mais la conversion de l'UPC à l'ISBN n'est pas aussi facile que vous le souhaitez.

Voici un peu de code javascript pour elle de http://isbn.nu où c'est fait dans le 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;
}

Cependant, qui convertit uniquement à partir de l'UPC à l'ISBN certains de l'époque.

Vous pouvez regarder la numérisation de codes à barres page du projet, de trop - une personne sur la voie de la numérisation des livres.

De sorte que vous savez sur Amazon Web Services. Mais cela suppose amazon a le livre et l'a analysé dans l'UPC.

Vous pouvez également essayer les UPCdatabase à http://www.upcdatabase.com/item/{UPC}, mais c'est aussi incomplète - au moins c'est croissante..

La bibliothèque du congrès de la base de données est également incomplète avec codes à Barres jusqu'à présent (même si c'est assez complet), et est plus difficile à obtenir automatisé.

Actuellement, il semble que vous devriez écrire vous-même afin d'avoir un haut niveau de recherche qui renvoie des informations simples (et essaie chaque service)

3voto

davenpcj Points 3424

Sonne comme le genre de travail, on peut obtenir une petite entreprise de logiciels pour le faire pour vous...

Plus sérieusement, il y a des services qui fournissent une interface pour l'ISBN catalogue, www.literarymarketplace.com.

Sur worldcat.com, vous pouvez créer une URL à l'aide de l'ISBN qui vous mènera tout droit du livre de la page de détail. Cette page n'est pas très utile, car il est encore HTML grattant pour obtenir les données, mais ils ont un lien pour télécharger le livre des données dans un couple "standard" formats.

Par exemple, leur démo livre: http://www.worldcat.org/isbn/9780060817084 A une "Note de fin" format de lien de téléchargement http://www.worldcat.org/oclc/123348009?page=endnote&client=worldcat.org-detailed_recordet vous pouvez récolter les données de ce fichier très facilement. C'est lié à partir de leur propre numéro OCLC, pas l'ISBN, mais l'étalement de convertir ce n'est pas difficile, et ils peuvent encore avoir une bonne interface pour le faire.

2voto

sblundy Points 27163

Mon bibliothécaire femme utilise http://www.worldcat.org/, mais ils key off ISBN. Si vous pouvez analyser, alors vous avez gagné. En regardant un peu de livres, il semble que la CUP est le même ou liés à l'ISBN.

Oh, ces gars-là ont une fonction pour faire la conversion à partir de l'UPC à l'ISBN.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X