如何从ISBN编号中获取图书标题?

时间:2022-12-04 23:24:56

I am planning on creating a small website for my personal book collection. To automate the process a little bit, I would like to create the following functionality:

我计划为我的个人藏书创建一个小网站。为了使过程自动化一些,我想创建以下功能:

The website will ask me for the ISBN number of the book and will then automatically fetch the title and add it to my database.

网站会问我书的ISBN号,然后自动获取书名并添加到我的数据库中。

Although I am mainly interested in doing this in php, I also have some Java implementation ideas for this. I believe it could also help if the answer was as much language-agnostic as possible.

虽然我主要对在php中进行此操作感兴趣,但我也有一些Java实现的想法。我相信,如果答案是尽可能多地与语言无关,这也会有所帮助。

10 个解决方案

#1


37  

This is the LibraryThing founder. We have nothing to offer here, so I hope my comments will not seem self-serving.

这是图书馆的创始人。我们在这里没有什么可以提供的,所以我希望我的评论不会显得自私。

First, the comment about Amazon, ASINs and ISBN numbers is wrong in a number of ways. In almost every circumstance where a book has an ISBN, the ASIN and the ISBN are the same. ISBNs are not now 13 digits. Rather, ISBNs can be either 10 or 13. Ten-digit ISBNs can be expressed as 13-digit ones starting with 978, which means every ISBN currently in existance has both a 10- and a 13-digit form. There are all sorts of libraries available for converting between ISBN10 and ISBN13. Basically, you add 978 to the front and recalculate the checksum digit at the end.

首先,有关亚马逊(Amazon)、ASINs和ISBN数据的评论在很多方面都是错误的。在几乎所有有ISBN的情况下,ASIN和ISBN都是相同的。isbn现在不是13位。isbn可以是10或13。10位数的ISBN可以表示为13位数,从978开始,这意味着当前存在的每一个ISBN都有10位数和13位数的形式。在ISBN10和ISBN13之间有各种可用的库。基本上,你在前面加上978,最后重新计算校验和数字。

ISBN13 was invented because publishers were running out of ISBNs. In the near future, when 979-based ISBN13s start being used, they will not have an ISBN10 equivalent. To my knowledge, there are no published books with 979-based ISBNs, but they are coming soon. Anyway, the long and short of it is that Amazon uses the ISBN10 form for all 978 ISBN10s. In any case, whether or not Amazon uses ten or thirteen-digit ASINs, you can search Amazon by either just fine.

ISBN13的发明是因为出版商的isbn已经用完了。在不久的将来,当基于979的ISBN13s开始被使用时,它们将不会有与之相当的ISBN10。据我所知,目前还没有以979为基础的isbn出版的书籍,但它们很快就要出版了。总之,不管怎样,亚马逊对所有978个ISBN10都使用ISBN10。无论如何,无论亚马逊是否使用10或13位数的asin,你都可以在Amazon上进行搜索。

Personally, I wouldn't put ISBN DB at the top of your list. ISBN DB mines from a number of sources, but it's not as comprehensive as Amazon or Google. Rather, I'd look into Amazon—including the various international Amazons—and then the new Google Book Data API and, after that, the OpenLibrary API. For non-English books there are other options, like Ozone for Russian books.

就我个人而言,我不会把ISBN DB放在你的列表的首位。ISBN DB矿有很多来源,但没有亚马逊或谷歌那么全面。相反,我会研究亚马逊——包括各种国际亚马逊——然后是新的谷歌图书数据API,然后是OpenLibrary API。对于非英语书籍,还有其他选择,比如俄罗斯图书的臭氧。

If you care about the highest-quality data, or if you have any books published before about 1970, you will want to look into data from libraries, available by Z39.50 protocol and usually in MARC format, or, with a few libraries in Dublin Core, using the SRU/SRW protocol. MARC format is, to a modern programmer, pretty strange stuff. But, one you get it, it's also better data, and includes useful fields like the LCCN, DDC, LCC and LCSH.

如果您关心最高质量的数据,或者如果您在1970年以前出版过任何书籍,您将希望查看来自库的数据,这些数据可通过Z39.50协议获得,通常采用MARC格式,或者使用SRU/SRW协议,使用都柏林核心的一些库。对一个现代程序员来说,MARC格式很奇怪。但是,您会得到一个更好的数据,它包括一些有用的字段,如LCCN、DDC、LCC和LCSH。

LibraryThing runs off a homemade Python library that queries some 680 libraries and converts the many flavors of MARC into Amazon-compatible XML, with extras. We are currently reluctant to release the code, but may be releasing a service soon.

LibraryThing开发了一个自制的Python库,该库查询大约680个库,并将MARC的多种风格转换成与亚马逊兼容的XML,并附带附加功能。我们目前不愿意发布代码,但可能很快就会发布服务。

#2


13  

Check out ISBN DB API. It's a simple REST-based web service. Haven't tried it myself, but a friend has had successful experiences with it.

检查ISBN DB API。这是一个简单的基于rest的web服务。我自己还没试过,但是我的一个朋友有过成功的经历。

It'll give you book title, author information, and depending on the book, number of other details you can use.

它会给你书的标题,作者信息,根据书的不同,你可以使用的其他细节的数量。

#3


12  

Google has it's own API for Google Books that let's you query the Google Book database easily. The protocol is JSON based and you can view the technical information about it here.

谷歌有自己的谷歌书籍API,让你轻松查询谷歌图书数据库。协议是基于JSON的,您可以在这里查看它的技术信息。

You essentially just have to request the following URL :

你只需要请求以下URL:

https://www.googleapis.com/books/v1/volumes?q=isbn:YOUR_ISBN_HERE

https://www.googleapis.com/books/v1/volumes?q=isbn YOUR_ISBN_HERE

This will return you the information about the book in a JSON format.

这将以JSON格式返回有关该书的信息。

#4


11  

Try https://gumroad.com/l/RKxO

试试https://gumroad.com/l/RKxO

I purchased this database about 3 weeks ago for a book citation app I'm making. I haven't had any quality problems and virtually any book I scanned was found. The only problem is that they provide the file in CSV and I had to convert 20 million lines which took me almost an hour! Also the monthly updates are not delta and the entire database is sent which works for me but might be some work for others.

大约3周前我买了这个数据库,我正在做一个图书引文应用。我没有遇到任何质量问题,我扫描的书几乎都找到了。唯一的问题是他们提供了CSV文件,我需要转换2000万行,这花了我将近一个小时!每个月的更新都不是delta,整个数据库都是发送给我的,但对其他人来说可能是有用的。

#5


6  

I haven't tried it, but take a look at isbndb

我还没有尝试过,但是看看isbndb

API Description: Introduction

API描述:介绍

ISBNdb.com's remote access application programming interface (API) is designed to allow other websites and standalone applications use the vast collection of data collected by ISBNdb.com since 2003. As of this writing, in July 2005, the data includes nearly 1,800,000 books; almost 3,000,000 million library records; close to a million subjects; hundreds of thousands of author and publisher records parsed out of library data; more than 10,000,000 records of actual and historic prices.

ISBNdb.com的远程访问应用程序编程接口(API)旨在允许其他网站和独立应用程序使用ISBNdb.com自2003年以来收集的大量数据。截至2005年7月,这些数据包括近180万册图书;近三百万图书馆纪录;接近一百万的受试者;成千上万的作者和出版商的记录被解析出图书馆的数据;实际和历史价格的记录超过1000万。

Some ideas of how the API can be used include:

一些关于如何使用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

Using the API you can look up information by keywords, by ISBN, by authors or publishers, etc. In most situations the API is fast enough to be used in interactive applications.

使用API,您可以通过关键字、ISBN、作者或发布者等查找信息。在大多数情况下,API足够快,可以在交互式应用程序中使用。

The data is heavily cross-linked -- starting at a book you can retrieve information about its authors, then other books of these authors, then their publishers, etc.

数据是高度交叉的——从一本书开始,你可以检索作者的信息,然后是这些作者的其他书籍,然后是他们的出版商,等等。

The API is primarily intended for use by programmers. The interface strives to be platform and programming language independent by employing open standard protocols and message formats.

API主要用于程序员。通过采用开放的标准协议和消息格式,该接口力求成为独立于平台和编程语言的接口。

#6


2  

Although the other answers are correct, this one explains the process in a little more detail. This one uses the GOOGLE BOOKS API.

虽然其他的答案是正确的,但是这个答案更详细地解释了这个过程。这个使用的是谷歌图书API。

https://giribhatnagar.wordpress.com/2015/07/12/search-for-books-by-their-isbn/

https://giribhatnagar.wordpress.com/2015/07/12/search-for-books-by-their-isbn/

All you need to do is
1.Create an appropriate HTTP request
2.Send it and Receive the JSON object containing detail about the book
3.Extract the title from the received information
The response you get is in JSON. The code given on the above site is for NODE.js but I'm sure it won't be difficult to reproduce that in PHP(or any other language for that matter).

你需要做的就是1。创建适当的HTTP请求2。发送它并接收包含有关book 3的详细信息的JSON对象。从接收到的响应以JSON格式的信息中提取标题。上述站点给出的代码是用于NODE的。但是我确信在PHP(或其他语言)中复制它并不困难。

#7


1  

To obtain data for given ISBN number you need to interact with some online service like isbndb. One of the best sources for bibliographic information is Amazon web service. It provides you with all bibliographic info + book cover.

要获取给定ISBN编号的数据,您需要与isbndb之类的在线服务进行交互。书目信息最好的来源之一是Amazon web service。它为您提供所有书目信息+图书封面。

#8


1  

You might want to look into LibraryThing, it has an API that would do what you want and they handle things like mapping multiple ISBNs for different editions of a single "work".

您可能想要查看LibraryThing,它有一个API,可以做您想做的事情,它们处理一些事情,比如为单个“工作”的不同版本映射多个isbn。

#9


0  

As an alternative to isbndb (which seems like the perfect answer) I had the impression that you could pass an ISBN into an Amazon product URL to go straight to the Amazon page for the book. While this doesn't programmatically return the book title, it might have been a useful extra feature in case you wanted to link to Amazon user reviews from your database.

作为isbndb的替代品(似乎是完美的答案),我的印象是,您可以将ISBN传递到Amazon产品URL,直接到Amazon页面获取该书。虽然这不是以编程方式返回书名,但如果您想要链接到来自数据库的Amazon用户评论,那么它可能是一个有用的额外特性。

However, this link appears to shows that I was wrong. Actually what Amazon uses is the ASIN number and while this used to be the same as 10-digit ISBN numbers, those are no longer the only kind - ISBNs now have 13 digits (though there is a straight conversion from the old 10-digit type).

然而,这个链接似乎表明我错了。实际上,Amazon使用的是ASIN数字,虽然这个数字与10位的ISBN数字相同,但它们不再是唯一的类型——ISBN现在有13位数字(尽管与旧的10位数字类型有直接的转换)。

But more usefully, the same link does talk about the Amazon API which can convert from ISBN to ASIN and is likely to also let you look up titles and other information. It is primarily aimed at Amazon affiliates, but no doubt it could do the job if for some reason isbndb does not.

但更有用的是,同样的链接也提到了Amazon API,它可以将ISBN转换为ASIN,还可以让您查找标题和其他信息。它主要针对的是亚马逊的附属公司,但毫无疑问,如果isbndb出于某种原因不这么做的话,它就能做到这一点。

Edit: Tim Spalding above points out a few practical facts about ISBNs - I was slightly too pessimistic in assuming that ASINs would not correspond any more.

编辑:Tim Spalding在上面指出了一些关于ISBNs的实际情况——我在假设ASINs不再通信时有点过于悲观了。

#10


0  

You may also try this database: http://www.usabledatabases.com/database/books-isbn-covers/

你也可以试试这个数据库:http://www.usabledatabases.com/database/books-isbn-covers/。

It's got more books / ISBN than most web services you can currently find on the web. But it's probably an overkill for your small site.

它比你目前能在web上找到的大多数web服务拥有更多的书籍/ ISBN。但对你的小网站来说,这可能有点过头了。

#1


37  

This is the LibraryThing founder. We have nothing to offer here, so I hope my comments will not seem self-serving.

这是图书馆的创始人。我们在这里没有什么可以提供的,所以我希望我的评论不会显得自私。

First, the comment about Amazon, ASINs and ISBN numbers is wrong in a number of ways. In almost every circumstance where a book has an ISBN, the ASIN and the ISBN are the same. ISBNs are not now 13 digits. Rather, ISBNs can be either 10 or 13. Ten-digit ISBNs can be expressed as 13-digit ones starting with 978, which means every ISBN currently in existance has both a 10- and a 13-digit form. There are all sorts of libraries available for converting between ISBN10 and ISBN13. Basically, you add 978 to the front and recalculate the checksum digit at the end.

首先,有关亚马逊(Amazon)、ASINs和ISBN数据的评论在很多方面都是错误的。在几乎所有有ISBN的情况下,ASIN和ISBN都是相同的。isbn现在不是13位。isbn可以是10或13。10位数的ISBN可以表示为13位数,从978开始,这意味着当前存在的每一个ISBN都有10位数和13位数的形式。在ISBN10和ISBN13之间有各种可用的库。基本上,你在前面加上978,最后重新计算校验和数字。

ISBN13 was invented because publishers were running out of ISBNs. In the near future, when 979-based ISBN13s start being used, they will not have an ISBN10 equivalent. To my knowledge, there are no published books with 979-based ISBNs, but they are coming soon. Anyway, the long and short of it is that Amazon uses the ISBN10 form for all 978 ISBN10s. In any case, whether or not Amazon uses ten or thirteen-digit ASINs, you can search Amazon by either just fine.

ISBN13的发明是因为出版商的isbn已经用完了。在不久的将来,当基于979的ISBN13s开始被使用时,它们将不会有与之相当的ISBN10。据我所知,目前还没有以979为基础的isbn出版的书籍,但它们很快就要出版了。总之,不管怎样,亚马逊对所有978个ISBN10都使用ISBN10。无论如何,无论亚马逊是否使用10或13位数的asin,你都可以在Amazon上进行搜索。

Personally, I wouldn't put ISBN DB at the top of your list. ISBN DB mines from a number of sources, but it's not as comprehensive as Amazon or Google. Rather, I'd look into Amazon—including the various international Amazons—and then the new Google Book Data API and, after that, the OpenLibrary API. For non-English books there are other options, like Ozone for Russian books.

就我个人而言,我不会把ISBN DB放在你的列表的首位。ISBN DB矿有很多来源,但没有亚马逊或谷歌那么全面。相反,我会研究亚马逊——包括各种国际亚马逊——然后是新的谷歌图书数据API,然后是OpenLibrary API。对于非英语书籍,还有其他选择,比如俄罗斯图书的臭氧。

If you care about the highest-quality data, or if you have any books published before about 1970, you will want to look into data from libraries, available by Z39.50 protocol and usually in MARC format, or, with a few libraries in Dublin Core, using the SRU/SRW protocol. MARC format is, to a modern programmer, pretty strange stuff. But, one you get it, it's also better data, and includes useful fields like the LCCN, DDC, LCC and LCSH.

如果您关心最高质量的数据,或者如果您在1970年以前出版过任何书籍,您将希望查看来自库的数据,这些数据可通过Z39.50协议获得,通常采用MARC格式,或者使用SRU/SRW协议,使用都柏林核心的一些库。对一个现代程序员来说,MARC格式很奇怪。但是,您会得到一个更好的数据,它包括一些有用的字段,如LCCN、DDC、LCC和LCSH。

LibraryThing runs off a homemade Python library that queries some 680 libraries and converts the many flavors of MARC into Amazon-compatible XML, with extras. We are currently reluctant to release the code, but may be releasing a service soon.

LibraryThing开发了一个自制的Python库,该库查询大约680个库,并将MARC的多种风格转换成与亚马逊兼容的XML,并附带附加功能。我们目前不愿意发布代码,但可能很快就会发布服务。

#2


13  

Check out ISBN DB API. It's a simple REST-based web service. Haven't tried it myself, but a friend has had successful experiences with it.

检查ISBN DB API。这是一个简单的基于rest的web服务。我自己还没试过,但是我的一个朋友有过成功的经历。

It'll give you book title, author information, and depending on the book, number of other details you can use.

它会给你书的标题,作者信息,根据书的不同,你可以使用的其他细节的数量。

#3


12  

Google has it's own API for Google Books that let's you query the Google Book database easily. The protocol is JSON based and you can view the technical information about it here.

谷歌有自己的谷歌书籍API,让你轻松查询谷歌图书数据库。协议是基于JSON的,您可以在这里查看它的技术信息。

You essentially just have to request the following URL :

你只需要请求以下URL:

https://www.googleapis.com/books/v1/volumes?q=isbn:YOUR_ISBN_HERE

https://www.googleapis.com/books/v1/volumes?q=isbn YOUR_ISBN_HERE

This will return you the information about the book in a JSON format.

这将以JSON格式返回有关该书的信息。

#4


11  

Try https://gumroad.com/l/RKxO

试试https://gumroad.com/l/RKxO

I purchased this database about 3 weeks ago for a book citation app I'm making. I haven't had any quality problems and virtually any book I scanned was found. The only problem is that they provide the file in CSV and I had to convert 20 million lines which took me almost an hour! Also the monthly updates are not delta and the entire database is sent which works for me but might be some work for others.

大约3周前我买了这个数据库,我正在做一个图书引文应用。我没有遇到任何质量问题,我扫描的书几乎都找到了。唯一的问题是他们提供了CSV文件,我需要转换2000万行,这花了我将近一个小时!每个月的更新都不是delta,整个数据库都是发送给我的,但对其他人来说可能是有用的。

#5


6  

I haven't tried it, but take a look at isbndb

我还没有尝试过,但是看看isbndb

API Description: Introduction

API描述:介绍

ISBNdb.com's remote access application programming interface (API) is designed to allow other websites and standalone applications use the vast collection of data collected by ISBNdb.com since 2003. As of this writing, in July 2005, the data includes nearly 1,800,000 books; almost 3,000,000 million library records; close to a million subjects; hundreds of thousands of author and publisher records parsed out of library data; more than 10,000,000 records of actual and historic prices.

ISBNdb.com的远程访问应用程序编程接口(API)旨在允许其他网站和独立应用程序使用ISBNdb.com自2003年以来收集的大量数据。截至2005年7月,这些数据包括近180万册图书;近三百万图书馆纪录;接近一百万的受试者;成千上万的作者和出版商的记录被解析出图书馆的数据;实际和历史价格的记录超过1000万。

Some ideas of how the API can be used include:

一些关于如何使用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

Using the API you can look up information by keywords, by ISBN, by authors or publishers, etc. In most situations the API is fast enough to be used in interactive applications.

使用API,您可以通过关键字、ISBN、作者或发布者等查找信息。在大多数情况下,API足够快,可以在交互式应用程序中使用。

The data is heavily cross-linked -- starting at a book you can retrieve information about its authors, then other books of these authors, then their publishers, etc.

数据是高度交叉的——从一本书开始,你可以检索作者的信息,然后是这些作者的其他书籍,然后是他们的出版商,等等。

The API is primarily intended for use by programmers. The interface strives to be platform and programming language independent by employing open standard protocols and message formats.

API主要用于程序员。通过采用开放的标准协议和消息格式,该接口力求成为独立于平台和编程语言的接口。

#6


2  

Although the other answers are correct, this one explains the process in a little more detail. This one uses the GOOGLE BOOKS API.

虽然其他的答案是正确的,但是这个答案更详细地解释了这个过程。这个使用的是谷歌图书API。

https://giribhatnagar.wordpress.com/2015/07/12/search-for-books-by-their-isbn/

https://giribhatnagar.wordpress.com/2015/07/12/search-for-books-by-their-isbn/

All you need to do is
1.Create an appropriate HTTP request
2.Send it and Receive the JSON object containing detail about the book
3.Extract the title from the received information
The response you get is in JSON. The code given on the above site is for NODE.js but I'm sure it won't be difficult to reproduce that in PHP(or any other language for that matter).

你需要做的就是1。创建适当的HTTP请求2。发送它并接收包含有关book 3的详细信息的JSON对象。从接收到的响应以JSON格式的信息中提取标题。上述站点给出的代码是用于NODE的。但是我确信在PHP(或其他语言)中复制它并不困难。

#7


1  

To obtain data for given ISBN number you need to interact with some online service like isbndb. One of the best sources for bibliographic information is Amazon web service. It provides you with all bibliographic info + book cover.

要获取给定ISBN编号的数据,您需要与isbndb之类的在线服务进行交互。书目信息最好的来源之一是Amazon web service。它为您提供所有书目信息+图书封面。

#8


1  

You might want to look into LibraryThing, it has an API that would do what you want and they handle things like mapping multiple ISBNs for different editions of a single "work".

您可能想要查看LibraryThing,它有一个API,可以做您想做的事情,它们处理一些事情,比如为单个“工作”的不同版本映射多个isbn。

#9


0  

As an alternative to isbndb (which seems like the perfect answer) I had the impression that you could pass an ISBN into an Amazon product URL to go straight to the Amazon page for the book. While this doesn't programmatically return the book title, it might have been a useful extra feature in case you wanted to link to Amazon user reviews from your database.

作为isbndb的替代品(似乎是完美的答案),我的印象是,您可以将ISBN传递到Amazon产品URL,直接到Amazon页面获取该书。虽然这不是以编程方式返回书名,但如果您想要链接到来自数据库的Amazon用户评论,那么它可能是一个有用的额外特性。

However, this link appears to shows that I was wrong. Actually what Amazon uses is the ASIN number and while this used to be the same as 10-digit ISBN numbers, those are no longer the only kind - ISBNs now have 13 digits (though there is a straight conversion from the old 10-digit type).

然而,这个链接似乎表明我错了。实际上,Amazon使用的是ASIN数字,虽然这个数字与10位的ISBN数字相同,但它们不再是唯一的类型——ISBN现在有13位数字(尽管与旧的10位数字类型有直接的转换)。

But more usefully, the same link does talk about the Amazon API which can convert from ISBN to ASIN and is likely to also let you look up titles and other information. It is primarily aimed at Amazon affiliates, but no doubt it could do the job if for some reason isbndb does not.

但更有用的是,同样的链接也提到了Amazon API,它可以将ISBN转换为ASIN,还可以让您查找标题和其他信息。它主要针对的是亚马逊的附属公司,但毫无疑问,如果isbndb出于某种原因不这么做的话,它就能做到这一点。

Edit: Tim Spalding above points out a few practical facts about ISBNs - I was slightly too pessimistic in assuming that ASINs would not correspond any more.

编辑:Tim Spalding在上面指出了一些关于ISBNs的实际情况——我在假设ASINs不再通信时有点过于悲观了。

#10


0  

You may also try this database: http://www.usabledatabases.com/database/books-isbn-covers/

你也可以试试这个数据库:http://www.usabledatabases.com/database/books-isbn-covers/。

It's got more books / ISBN than most web services you can currently find on the web. But it's probably an overkill for your small site.

它比你目前能在web上找到的大多数web服务拥有更多的书籍/ ISBN。但对你的小网站来说,这可能有点过头了。