76

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

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

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

4

11 回答 11

62

ISBNDB.com 上有一个非常简单的基于 Web 的解决方案,您可能想看看。

编辑:更新的 API 文档链接,现在也有第 2 版可用

链接到这里的价格和等级

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

  • 在网站上注册并获得使用 API 的密钥

  • 试试这样的网址:

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

results=details 获取其他详细信息,包括卡目录号。

顺便说一句,通常条形码是 isbn10 或 isbn13 中的 isbn。如果您使用扫描仪并拾取 18 个号码,您只需删除最后 5 个号码。

这是一个示例响应:

<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>
于 2008-09-20T03:56:30.767 回答
18

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

看看这个 StackOverflow 答案,它涵盖了一些获取给定 ISBN 数据的好方法。

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

ISBN/UPC 问题很复杂。如果您能找到它们,请首选 ISBN。大众市场平装本有时会在外面印上 UPC,而在里面印上 ISBN。

LibraryThing 成员已经开发了几页关于这个问题的页面,并努力将两者映射起来:

如果您从 Borders 购买,您图书的条形码将全部贴上它们自己的内部条形码(称为“BINC”)。最烦人的是,随着时间的推移,他们使用的任何胶水都变得越来越难以干净地去除。我知道没有可以转换它们的 API。LibraryThing 通过截屏来实现。

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

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

于 2008-10-04T05:12:17.107 回答
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 。

您可能也想看看条码扫描项目页面- 一个人扫描书籍的旅程。

所以你知道亚马逊网络服务。但这假设亚马逊有这本书并且已经在 UPC 中进行了扫描。

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

到目前为止,国会数据库的库还没有包含 UPC(尽管它非常全面),并且更难实现自动化。

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

于 2008-09-20T03:36:24.920 回答
3

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

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

在 worldcat.com 上,您可以使用 ISBN 创建一个 URL,该 URL将带您直接进入图书详细信息页面。该页面不是很有用,因为它仍然是 HTML 抓取来获取数据,但他们有一个链接可以以几种“标准”格式下载图书数据。

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

于 2008-09-20T03:57:09.613 回答
2

我的图书管理员妻子使用http://www.worldcat.org/,但他们关闭 ISBN。如果你能扫描它,你就是黄金。看了几本书,似乎UPC与ISBN相同或相关。

哦,这些家伙有一个功能,可以将 UPC 转换为 ISBN。

于 2008-09-20T03:53:41.337 回答
1

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

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

于 2008-09-20T03:57:24.930 回答
1

恐怕问题是数据库访问。公司为分配 UPC 而付费,因此该数据库不能免费访问。Philip 提到的UPCdatabase站点是一个开始,UPCData.info也是如此,但它们是用户输入的——这意味着不完整且可能不准确。

您始终可以在 UPC 中输入 Google 并获得成功,但这不是很自动化。但它确实在大多数情况下都是正确的。

我想我记得 Jon Udell 做过类似的事情(例如,看这个),但它纯粹是基于 ISBN 的。

看起来你已经找到了一个新的项目供某人工作!

于 2008-09-20T04:28:49.630 回答
1

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

于 2009-01-28T01:48:04.380 回答
0

在图书馆界工作,我们只需连接到条形码中的 LMS 通道,然后很快就会返回数据。我相信有许多免费的 LMS 提供商——谷歌的“开源 lms”。

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

于 2010-03-30T16:03:16.247 回答
0

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

于 2010-06-11T04:25:44.543 回答
0

我经常推荐使用亚马逊的 Product Affiliate API(在此处查看https://affiliate-program.amazon.com),但也有一些其他选项可用。

If you want to guarantee the accuracy of the data, you can go with the a paid solution. GS1 is the organization that issues UPC codes, so their information should always be accurate (https://www.gs1us.org/tools/gs1-company-database-gepir).

There are also a number of third party databases with relevant information such as https://www.upccodesearch.com/ or https://www.upcdatabase.com/ .

于 2017-04-23T20:04:11.413 回答