web-dev-qa-db-fra.com

Comment puis-je rechercher des données sur un livre à partir de son numéro de code-barres?

Je crée l'application de bibliothèque la plus simple au monde. Tout ce que je veux être en mesure de numériser dans un livre UPC (code-barres) en utilisant un scanner typique (qui tape simplement les numéros du code-barres dans un champ), puis l'utiliser pour rechercher des données sur le livre ... au minimum, le titre, l'auteur, l'année de publication et le numéro de catalogue Dewey Decimal ou Library of Congress.

L'objectif est d'imprimer un minuscule autocollant ("étiquette de dos") avec le numéro de catalogue de cartes que je peux coller sur le dos du livre, puis je peux trier les livres par numéro de catalogue de cartes sur les étagères de notre bibliothèque d'entreprise. De cette façon, les livres sur des sujets similaires auront tendance à être proches les uns des autres, par exemple, si vous savez que vous cherchez un livre sur la comptabilité, tout ce que vous avez à faire est de trouver QUELQUE livre sur la comptabilité et vous verrez l'autre demi-douzaine que nous avons juste à côté, ce qui facilite la navigation dans la bibliothèque.

Il semble y avoir beaucoup d'API Web pour ce faire, y compris Amazon et la Library of Congress. Mais tout cela est extrêmement déroutant pour moi. Ce que je veux vraiment, c'est une seule fonction de niveau supérieur qui prenne un UPC numéro de code-barres et renvoie des données de base sur le livre.

70
Joel Spolsky

Il existe une solution Web très simple sur ISBNDB.com que vous voudrez peut-être consulter.

Edit: Lien de documentation de l'API mis à jour, maintenant la version 2 est également disponible

Lien vers les prix et niveaux ici

Vous pouvez être opérationnel en quelques minutes (ces exemples proviennent de l'API v1):

  • inscrivez-vous sur le site et obtenez une clé pour utiliser l'API
  • essayez une URL comme:

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

Les résultats = détails obtiennent des détails supplémentaires, y compris le numéro de catalogue de la carte.

Soit dit en passant, généralement le code à barres est l'isbn dans isbn10 ou isbn13. Il vous suffit de supprimer les 5 derniers numéros si vous utilisez un scanner et que vous prenez 18 numéros.

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

Remarque: je suis le gars de LibraryThing, il s'agit donc d'une auto-promotion partielle.

Jetez un oeil à cette réponse StackOverflow , qui couvre quelques bonnes façons d'obtenir des données pour un ISBN donné.

Pour vos problèmes, Amazon comprend un simple DDC (Dewey); Google ne le fait pas. L'API WorldCat le fait, mais vous devez être une bibliothèque OCLC pour l'utiliser.

Le problème ISBN/UPC est complexe. Préférez l'ISBN, si vous pouvez les trouver. Les livres de poche du marché de masse arborent parfois des UPC à l'extérieur et un ISBN à l'intérieur.

Les membres de LibraryThing ont développé quelques pages sur la question et sur les efforts pour cartographier les deux:

Si vous achetez chez Borders, les codes-barres de votre livre seront tous collés avec leurs propres codes-barres internes (appelés "BINC"). Le plus ennuyeux, quelle que soit la colle qu'ils utilisent, devient de plus en plus difficile à enlever proprement avec le temps. Je ne connais aucune API qui les convertit. LibraryThing le fait par capture d'écran.

Pour une API, j'irais avec Amazon. LibraryThing est une bonne option non-API, résolvant les BINC et ajoutant DDC et LCC pour les livres qui n'en ont pas en regardant d'autres éditions du "travail".

Ce qui manque, c'est la partie étiquette. Quelqu'un doit créer un bon modèle PDF pour cela.

16
Tim Spalding

Modifier Ce serait assez facile si vous aviez un ISBN. mais la conversion de UPC en ISBN n'est pas aussi simple que vous le souhaitez.

Voici un code javascript pour cela de http://isbn.n où cela se 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, cela ne convertit que de UPC en ISBN certains de l'époque.

Vous voudrez peut-être aussi consulter la page du projet de lecture de codes-barres - le voyage d'une personne pour numériser des livres.

Vous connaissez donc Amazon Web Services . Mais cela suppose qu'Amazon a le livre et a numérisé dans l'UPC.

Vous pouvez également essayer la PCdatabase à http://www.upcdatabase.com/item/ {UPC}, mais cela est également incomplet - au moins, il est en croissance ..

La bibliothèque de la base de données du congrès est également incomplète avec les UPC jusqu'à présent (bien qu'elle soit assez complète) et est plus difficile à automatiser.

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

8
Philip Rieck

On dirait le genre de travail qu'on pourrait faire faire à une petite entreprise de logiciels pour vous ...

Plus sérieusement, il existe des services qui fournissent une interface avec le catalogue ISBN, www.literarymarketplace.com.

Sur worldcat.com, vous pouvez créer une URL à l'aide de l'ISBN qui vous mènera directement à une page de détail du livre. Cette page n'est pas très utile car elle est toujours grattée HTML pour obtenir les données, mais ils ont un lien pour télécharger les données du livre dans quelques formats "standard".

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

3
davenpcj

Ma femme bibliothécaire utilise http://www.worldcat.org/ , mais elle désactive ISBN. Si vous pouvez scanner cela, vous êtes en or. En regardant quelques livres, il semble que le UPC est identique ou lié à l'ISBN.

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

2
sblundy

En utilisant le site Web Library Thing , vous pouvez numériser vos codes-barres (le code-barres entier, pas seulement l'ISBN - si vous avez un "coin" de numérisation, vous avez de la chance) et construire votre bibliothèque. (C'est un excellent réseau social - pensez à StackOverflow pour les amateurs de livres.)

Ensuite, à l'aide de la section OUTILS, vous pouvez exporter votre bibliothèque. Vous avez maintenant un fichier texte à importer/analyser et pouvez créer vos étiquettes, un catalogue de cartes, etc.

1
Doug L.

Si vous souhaitez utiliser Amazon, vous pouvez l'implémenter facilement avec LINQ to Amazon .

1
Simon_Weaver

J'ai bien peur que le problème soit l'accès à la base de données. Les entreprises paient pour avoir un UPC assigné et donc la base de données n'est pas librement accessible. Le site PCdatabase mentionné par Philip est un début, tout comme PCData .info , mais ils sont entrés par l'utilisateur - ce qui signifie incomplets et peut-être inexacts.

Vous pouvez toujours entrer dans le UPC à Google et obtenir un coup, mais ce n'est pas très automatisé. Mais il le fait bien la plupart du temps.

Je pensais que je me souvenais de Jon Udell faisant quelque chose comme ça (par exemple, voir ceci ), mais c'était purement basé sur ISBN.

On dirait que vous avez trouvé un nouveau projet sur lequel travailler!

1
JohnMeyers

Travaillant dans le monde des bibliothèques, nous nous connectons simplement au pass LMS dans le code-barres et bon retour les données. Je crois qu'il existe un certain nombre de fournisseurs de LMS gratuits - Google pour "lms open source".

Remarque: Cela fonctionne probablement hors ISBN ...

0
Matt B

Je recommande fréquemment d'utiliser l'API d'affiliation de produits d'Amazon (consultez-la ici https://affiliate-program.Amazon.com ) , mais il existe également quelques autres options.

Si vous souhaitez garantir l'exactitude des données, vous pouvez opter pour une solution payante. GS1 est l'organisation qui émet des codes UPC, donc leurs informations doivent toujours être exactes ( https://www.gs1us.org/tools/gs1-company-database-gepir ).

Il existe également un certain nombre de bases de données tierces avec des informations pertinentes telles que https://www.upccodesearch.com/ ou https://www.upcdatabase.com/ .

0
mosca1337

Vous pouvez trouver un PHP outil de recherche ISBN implémenté sur Dawson Interactive .

0
cheekygeek