如何从条形码编号中查找有关图书的数据?

时间:2008-09-20 03:28:34

标签: api language-agnostic amazon barcode

我正在构建世界上最简单的库应用程序。我想要做的就是使用典型的扫描仪(只是将条形码的数字键入字段)扫描书籍的UPC(条形码),然后用它来查找有关书籍的数据......最小,标题,作者,出版年份,以及杜威十进制或国会图书馆目录编号。

我的目标是打印出一个小贴纸(“脊柱标签”),上面贴有卡片目录编号,我可以将它贴在书脊上,然后我可以按照我们书架上的卡片目录编号对书籍进行分类。公司图书馆。这样,关于类似主题的书籍往往会彼此靠近,例如,如果你知道你正在寻找一本关于会计的书,你所要做的就是找到一本关于会计的书,你会看到另外一半的书。我们就在它旁边,便于浏览图书馆。

似乎有很多网络API可以做到这一点,包括亚马逊和国会图书馆。但这些对我来说都非常困惑。我真正想要的是一个更高级别的功能,它可以获取UPC条形码编号并返回有关该书的一些基本数据。

12 个答案:

答案 0 :(得分:61)

在ISBNDB.com上有一个非常简单的基于网络的解决方案,你可能想看一下。

修改:更新了API文档链接,现在还有第2版

Link to prices and tiers here

您可以在几分钟内启动并运行(这些示例来自API v1):

  • 在网站上注册并获取使用API​​的密钥
  • 尝试使用以下网址:

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

结果=详细信息获取其他详细信息,包括卡目录编号。

顺便说一下,条形码通常是isbn10或isbn13中的isbn。如果您使用的是扫描仪,那么您只需要删除最后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>

答案 1 :(得分:16)

注意:我是LibraryThing的人,所以这是部分自我推销。

查看this StackOverflow answer,其中介绍了获取特定ISBN数据的一些好方法。

对于您的问题,亚马逊包含一个简单的DDC(杜威);谷歌没有。 WorldCat API可以,但您需要成为OCLC库才能使用它。

ISBN / UPC问题很复杂。如果您能找到它们,请选择ISBN。大众市场平装本有时在外面运行UPC,在内部运行ISBN。

LibraryThing成员已经就这个问题开发了一些页面,并开发了两个地图:

如果您从Borders购买,您的图书的条形码将全部用他们自己的内部条形码(称为“BINC”)进行修改。最令人讨厌的是,随着时间的推移,无论使用何种胶水都会变得越来越难以清除。我知道没有API可以转换它们。 LibraryThing通过屏幕抓取来实现。

对于API,我会选择亚马逊。 LibraryThing是一个很好的非API选项,通过查看其他版本的“工作”来解析BINC并为没有它们的书籍添加DDC和LCC。

标签部分缺少什么。有人需要为此创建一个好的PDF模板。

答案 2 :(得分:8)

修改如果你有ISBN,这将非常容易。但是从UPC转换为ISBN并不像你想的那么容易。

以下是来自http://isbn.nu的javascript代码,在脚本

中完成
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 某些

你也可以看一下barcode scanning project page - 一个人扫描书籍的旅程。

所以你知道Amazon Web Services。但这假设亚马逊有这本书,并在UPC扫描过。

你也可以在UPCdatabase {UPC}尝试http://www.upcdatabase.com/item/,但这也不完整 - 至少它正在增长..

到目前为止,UPC的会议数据库也不完整(尽管它非常全面),并且更难实现自动化。

目前,您似乎必须自己编写此代码才能进行高级查找,以返回简单信息(并尝试每项服务)

答案 3 :(得分:3)

听起来像是一家小型软件公司可能为你做的工作......

更严重的是,有些服务提供了ISBN目录的界面,www.literarymarketplace.com。

在worldcat.com上,您可以create a URL using the ISBN直接转到图书详细信息页面。该页面不是很有用,因为它仍然是HTML抓取数据,但它们有一个链接,可以用几种“标准”格式下载书籍数据。

例如,他们的演示书:http://www.worldcat.org/isbn/9780060817084 具有“EndNote”格式下载链接http://www.worldcat.org/oclc/123348009?page=endnote&client=worldcat.org-detailed_record,您可以非常轻松地从该文件中获取数据。这与他们自己的OCLC号码相关联,而不是ISBN,但转换的难度并不难,而且他们可能还有一个很好的界面。

答案 4 :(得分:2)

我的图书管理员妻子使用http://www.worldcat.org/,但他们关闭了ISBN。如果你可以扫描那个,你就是金色的。看几本书,看起来UPC与ISBN相同或相关。

哦,these guys具有从UPC到ISBN的转换功能。

答案 5 :(得分:1)

使用网站Library Thing,您可以扫描条形码(整个条形码,而不仅仅是ISBN - 如果您有扫描“楔形”,那么你很幸运)并构建您的库。 (这是一个优秀的社交网络 - 想象书籍爱好者的StackOverflow。)

然后,使用TOOLS部分,您可以导出库。现在您有一个要导入/解析的文本文件,可以创建标签,卡片目录等。

答案 6 :(得分:1)

我担心问题是数据库访问。公司为分配UPC付费,因此数据库无法自由访问。菲利普提到的UPCdatabase网站是一个开始,UPCData.info也是如此,但他们是用户输入的 - 这意味着不完整且可能不准确。

您可以随时输入UPC到Google并获得热播,但这不是非常自动化。但它确实在大多数情况下都是正确的。

我以为我记得Jon Udell做过这样的事情(例如see this),但这纯粹是基于ISBN的。

看起来你找到了一个可供其工作的新项目!

答案 7 :(得分:1)

如果您想使用亚马逊,可以使用LINQ to Amazon轻松实现。

答案 8 :(得分:0)

在图书馆世界工作,我们只需连接到条形码中的LMS传递,然后将数据传回。我相信有一些免费的LMS提供商 - 谷歌的“开源lms”。

注意:这可能适用于ISBN ...

答案 9 :(得分:0)

您可以在Dawson Interactive找到PHP实施的ISBN查找工具。

答案 10 :(得分:0)

我经常建议使用亚马逊的产品联盟API (请在此处查看https://affiliate-program.amazon.com),但也有一些其他选项可用。

如果您想保证数据的准确性,可以使用付费解决方案。 GS1是发布UPC代码的组织,因此其信息应始终准确(https://www.gs1us.org/tools/gs1-company-database-gepir)。

还有许多第三方数据库包含https://www.upccodesearch.com/https://www.upcdatabase.com/等相关信息。

答案 11 :(得分:-1)

在事实发生近5年之后,没有什么比这更好的答案了,但这里有我的几个光鲜的便士价值。

我目前正在构建能够很好地完成工作的东西... https://blinked.in - 什么是快速成为最大的UPC / EAN13条形码数据库(我们仅在上周就添加了超过7M的条形码)虽然我们仍处于开发的alpha阶段,但我们正在推出一种非常简单,低成本的API来提供这种数据访问。

我们只在开发中工作了几个月,但已经拥有一个稳定的网络平台,快速扩展数据库并希望保持简单。

希望这会以某种方式帮助您或未来的读者。

<强>更新

我们的API现已上线 - https://blinked.in/api - 我们每天拨打100个免费电话,您可以通过帮助我们发现新的条形码来获得积分 - https://blinked.in/bandwidthaccount