如何从ISBN号码中获取书名?[已关闭]
我计划为我的个人藏书创建一个小型网站。为了自动执行该过程,我想创建以下功能:
该网站将向我询问该书的ISBN编号,然后会自动获取标题并将其添加到我的数据库中。
虽然我主要对在php中执行此操作感兴趣,但我也有一些Java实现的想法。我相信,如果答案是尽可能多的语言不可知论者,它也会有所帮助。
我计划为我的个人藏书创建一个小型网站。为了自动执行该过程,我想创建以下功能:
该网站将向我询问该书的ISBN编号,然后会自动获取标题并将其添加到我的数据库中。
虽然我主要对在php中执行此操作感兴趣,但我也有一些Java实现的想法。我相信,如果答案是尽可能多的语言不可知论者,它也会有所帮助。
这是LibraryThing的创始人。我们在这里没有什么可以提供的,所以我希望我的评论不会显得自私自利。
首先,关于亚马逊,ASIN和ISBN编号的评论在很多方面都是错误的。在几乎所有书籍都有 ISBN 的情况下,ASIN 和 ISBN 都是相同的。ISBN 现在不是 13 位数字。相反,ISBN 可以是 10 或 13。十位数的 ISBN 可以表示为以 978 开头的 13 位数 ISBN,这意味着当前存在的每个 ISBN 都有 10 位和 13 位的形式。有各种各样的库可以在ISBN10和ISBN13之间转换。基本上,您将978添加到前面,然后在最后重新计算校验和数字。
ISBN13的发明是因为出版商的ISBN已经用完了。在不久的将来,当基于979的ISBN13开始使用时,它们将没有ISBN10等效项。据我所知,没有基于979的ISBN的出版书籍,但它们很快就会推出。无论如何,长话短说,亚马逊对所有978个ISBN10都使用ISBN10表格。无论如何,无论亚马逊使用十位还是十三位ASIN,您都可以通过任何一种方式搜索亚马逊。
就个人而言,我不会把ISBN DB放在你列表的顶部。ISBN DB从许多来源挖掘,但它不如亚马逊或谷歌那么全面。相反,我会研究亚马逊——包括各种国际亚马逊——然后是新的Google Book Data API,然后是OpenLibrary API。对于非英语书籍,还有其他选择,例如俄语书籍的Ozone。
如果您关心最高质量的数据,或者您是否在1970年之前出版了任何书籍,您将需要查看来自库的数据,这些数据可通过Z39.50协议获得,通常采用MARC格式,或者,对于都柏林核心中的一些库,使用SRU / SRW协议。对于现代程序员来说,MARC格式是相当奇怪的东西。但是,一旦你得到它,它也是更好的数据,包括有用的字段,如LCCN,DDC,LCC和LCSH。
LibraryThing运行一个自制的Python库,该库查询了大约680个库,并将MARC的许多风格转换为与Amazon兼容的XML,并具有额外的功能。我们目前不愿意发布代码,但可能很快就会发布服务。
Google拥有自己的Google Books API,可让您轻松查询Google Book数据库。该协议基于 JSON,您可以在此处查看有关它的技术信息。
您基本上只需要请求以下URL:
https://www.googleapis.com/books/v1/volumes?q=isbn:YOUR_ISBN_HERE
这将以 JSON 格式返回有关图书的信息。