如何从条形码中查找有关书籍的数据?[关闭]


74

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

目的是打印出一个很小的标签(带有“书脊标签”),上面贴有我可以粘贴在书脊上的卡片目录号,然后我可以通过公司图书馆书架上的卡片目录号对书籍进行分类。这样一来,类似主题的书就趋于彼此靠近,例如,如果您知道要查找有关会计的书,那么您所要做的就是找到一些有关会计的书,而您会看到另一半紧挨着它,这使浏览图书馆变得很方便。

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


链接(那里还有其他有用的答案):stackoverflow.com/questions/41469/…–
巴吉(Basj

Answers:


61

您可能希望在ISBNDB.com上找到一个非常简单的基于Web的解决方案。

编辑:更新了API文档链接,现在也有版本2

链接到这里的价格和等级

您只需几分钟即可启动并运行(这些示例来自API v1):

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

  • 尝试使用类似以下的URL:

    http://isbndb.com/api/books.xml?access_key={您的}&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>

18

注意:我是LibraryThing家伙,所以这是部分自我宣传。

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

对于您的问题,Amazon包括一个简单的DDC(杜威);谷歌没有。WorldCat API可以,但是您必须是OCLC库才能使用它。

ISBN / UPC问题很复杂。如果可以找到,请选择ISBN。大众市场平装书有时在外面带有UPC,而在里面则带有ISBN。

LibraryThing成员已针对此问题以及为绘制这两个图而开发了几页:

如果您是从Borders购买的,则图书的条形码将全部贴有其自己的内部条形码(称为“ BINC”)。最令人烦恼的是,随着时间的推移,他们使用的胶水越来越难以清除。我不知道可以转换它们的API。LibraryThing通过抓屏来实现。

对于API,我会选择Amazon。LibraryThing是一个很好的非API选项,它可以通过查看其他版本的“著作”来解决BINC并为没有书的书添加DDC和LCC。

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


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 。

您可能还希望查看条形码扫描项目页面-一个人扫描书籍的旅程。

所以您了解Amazon Web Services。但这假设亚马逊拥有这本书并且已经在UPC中进行了扫描。

你也可以尝试UPCdatabasehttp://www.upcdatabase.com/item/ {} UPC,而这也是不完整的-至少它的增长..

迄今为止,国会数据库库还不具备UPC(尽管它非常全面),并且很难实现自动化。

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


2
我希望的是,如果有人已经有执行此操作的代码,那么我不必阅读8000页的AWS文档。所有的小型图书馆应用程序都已经做到了。也有一些我不理解的将UPC转换为ISBN的方法。
乔尔·斯波斯基

1
该代码将isbn13转换为ISBN10。它与UPC代码无关。
stevenf 2011年

@stevenf-不正确。大多数书籍中的UPC是ISBN10,带数字978或979。在UPC中,前3个数字代表原籍国,而978-979被分配给“ Bookland”。因此,除了剥离国家代码和校验和(如果已扫描)外,它实际上并没有做其他任何事情,但它确实与UPC代码有关。
菲利普·里克

librarything.com/wiki/index.php/CueCat:_ISBNs_and_Barcodes 您在混淆从ISBN10到ISBN13的转换。
stevenf

好吧,这是一个错误-没想到Enter会立即提交-它被链接在这里的某个地方,但是在这里对我的主张提供了一些支持: librarything.com/wiki/index.php/Upc 您正在混淆来自ISBN10到ISBN13,以及从UPC到ISBN的转换(10或13)。我亲自使用了库事物解释来成功转换大约2/3的UPC颂歌,这些颂歌已上传到我们构建的Web应用程序中。
stevenf

3

听起来像是可以让一家小型软件公司为您做的工作……

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

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

例如,他们的演示书:http : //www.worldcat.org/isbn/9780060817084 具有“ EndNote”格式的下载链接http://www.worldcat.org/oclc/123348009?page=endnote&client=worldcat.org- detail_record,您可以非常轻松地从该文件中收集数据。这是与他们自己的OCLC编号(而不是ISBN)相关联的,但这并不难转换,因此他们可能有一个很好的界面来执行此操作。


2

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

哦,这些家伙具有将UPC转换为ISBN的功能。


1

使用网站Library Thing,您可以扫描条形码(整个条形码,而不仅仅是ISBN-如果您有运气的扫描“楔子”,则可以)并构建图书馆。(这是一个出色的社交网络-为书迷们考虑StackOverflow。)

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


我正在将书放在架子上时进行扫描,因此我想在扫描书后立即打印标签。以后打印标签会很痛苦,因为我必须弄清楚事实之后标签会去哪里。这就是为什么我发现几乎没有一个图书馆应用程序可以为我工作
Joel Spolsky

1

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

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

我以为我记得乔恩·乌德尔(Jon Udell)做这样的事情(例如,请看此),但这纯粹是基于ISBN的。

您似乎已经找到了一个新项目供某人从事!



0

在图书馆世界中工作,我们只需要连接条形码中的LMS通道,然后就可以轻松地返回数据。我相信有许多免费的LMS提供程序-Google代表“开源lms”。

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




-1

事实发生将近5年后,没有什么比这更合适的答案了,但这是我的那两分钱。

我目前正在构建一些可以很好地完成这项工作的东西…… https ://blinked.in-迅速成为最大的UPC / EAN13条码数据库(仅在上周,我们就增加了7M条码),虽然我们仍处于开发的Alpha阶段,但我们正在引入一个非常简单,低成本的API,以提供此类数据访问。

我们仅在开发人员中待了几个月,但已经拥有一个稳定的Web平台,快速扩展的数据库并希望保持简单。

希望这对您或将来的读者有所帮助。

更新

我们的API现已上线-https: //blinked.in/api-我们每天有100次免费通话,您可以通过帮助我们发现新条形码来赚取信誉-https: //blinked.in/bandwidthaccount

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.