我正在构建世界上最简单的库应用程序。我想要做的就是使用典型的扫描仪(只是将条形码的数字键入字段)扫描书籍的UPC(条形码),然后用它来查找有关书籍的数据......最小,标题,作者,出版年份,以及杜威十进制或国会图书馆目录编号。
我的目标是打印出一个小贴纸(“脊柱标签”),上面贴有卡片目录编号,我可以将它贴在书脊上,然后我可以按照我们书架上的卡片目录编号对书籍进行分类。公司图书馆。这样,关于类似主题的书籍往往会彼此靠近,例如,如果你知道你正在寻找一本关于会计的书,你所要做的就是找到一本关于会计的书,你会看到另外一半的书。我们就在它旁边,便于浏览图书馆。
似乎有很多网络API可以做到这一点,包括亚马逊和国会图书馆。但这些对我来说都非常困惑。我真正想要的是一个更高级别的功能,它可以获取UPC条形码编号并返回有关该书的一些基本数据。
答案 0 :(得分:61)
在ISBNDB.com上有一个非常简单的基于网络的解决方案,你可能想看一下。
修改:更新了API文档链接,现在还有第2版
您可以在几分钟内启动并运行(这些示例来自API v1):
尝试使用以下网址:
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