我打算为我的个人藏书创建一个小网站.为了使过程自动化一点,我想创建以下功能:
该网站将询问我该书的ISBN号,然后自动获取标题并将其添加到我的数据库.
虽然我主要对在php中这样做感兴趣,但我也有一些Java实现的想法.我相信如果答案尽可能与语言无关,那么它也会有所帮助.
这是LibraryThing的创始人.我们在这里没什么可提供的,所以我希望我的评论看起来不会自私.
首先,关于亚马逊,ASIN和ISBN号的评论在很多方面都是错误的.在几乎所有书籍都有ISBN的情况下,ASIN和ISBN都是相同的.ISBN现在不是13位数.相反,ISBN可以是10或13.十位数的ISBN可以表示为以978开头的13位数字,这意味着当前存在的每个ISBN都具有10位和13位数字形式.有各种各样的库可用于在ISBN10和ISBN13之间进行转换.基本上,您在前面添加978并在末尾重新计算校验和数字.
ISBN13的发明是因为出版商的ISBN用完了.在不久的将来,当基于979的ISBN13开始使用时,它们将没有ISBN10等价物.据我所知,没有出版基于979的ISBN的书籍,但它们即将推出.无论如何,它的长短是因为亚马逊使用ISBN10表格来处理所有978个ISBN10.无论如何,无论亚马逊是否使用十位或十三位数的ASIN,您都可以通过任何一种方式搜索亚马逊.
就个人而言,我不会将ISBN DB放在列表的顶部.ISBN DB从许多来源挖掘,但它不如亚马逊或谷歌那么全面.相反,我会研究亚马逊 - 包括各种国际亚马逊 - 然后是新的Google Book Data API,之后是OpenLibrary API.对于非英语书籍,还有其他选项,如俄罗斯书籍的臭氧.
如果您关心最高质量的数据,或者如果您在1970年左右之前发布过任何书籍,那么您将需要查看来自库的数据,这些数据可以通过Z39.50协议获得,通常采用MARC格式,或者只有几个库. Dublin Core,使用SRU/SRW协议.对于现代程序员来说,MARC格式是非常奇怪的东西.但是,一旦你得到它,它也是更好的数据,并包括有用的领域,如LCCN,DDC,LCC和LCSH.
LibraryThing运行一个自制的Python库,可以查询大约680个库,并将MARC的多种风格转换为与Amazon兼容的XML,并附带额外的内容.我们目前不愿意发布代码,但很快就会发布一项服务.
查看ISBN DB API.这是一个简单的基于REST的Web服务.没有亲自尝试过,但朋友有过成功经验.
它将为您提供书名,作者信息,并根据书籍,您可以使用的其他详细信息的数量.
Google拥有自己的Google图书API,可让您轻松查询Google图书数据库.该协议是基于JSON的,您可以在此处查看有关它的技术信息.
您基本上只需要请求以下URL:
https://www.googleapis.com/books/v1/volumes?q=isbn:YOUR_ISBN_HERE
这将以JSON格式返回有关该书的信息.
试试https://gumroad.com/l/RKxO
我在3周前购买了这个数据库,用于我正在制作的书籍引用应用程序.我没有任何质量问题,几乎找到了我扫描过的任何书.唯一的问题是他们提供CSV文件,我不得不转换2000万行,这花了我差不多一个小时!此外,每月更新不是增量,并且发送的整个数据库对我有用,但可能对其他人有用.
我没试过,但看看isbndb
API描述:简介
ISBNdb.com的远程访问应用程序编程接口(API)旨在允许其他网站和独立应用程序使用ISBNdb.com自2003年以来收集的大量数据.截至本文撰写时,2005年7月,该数据包括近1,800,000本书; 近300亿图书馆记录; 接近一百万科目; 从库数据中解析出数十万个作者和出版商记录; 超过10,000,000条实际和历史价格记录.
关于如何使用API的一些想法包括:
- Cataloguing home book collections - Building and verifying bookstores' inventories - Empowering forums and online communities with more useful book references - Automated cross-merchant price lookups over messaging devices or phones使用API,您可以按关键字,ISBN,作者或出版商等查找信息.在大多数情况下,API足够快,可以在交互式应用程序中使用.
这些数据是交叉链接的 - 从一本书开始,您可以检索有关其作者的信息,然后是这些作者的其他书籍,然后是他们的出版商等.
API主要供程序员使用.该接口通过采用开放标准协议和消息格式,致力于独立于平台和编程语言.