7

有没有办法使用亚马逊产品广告 API 根据其 ISBN 来查找一本书的各个版本?

而且,更一般地说,在书中查找版本元数据的各种选择是什么?只有一个我知道的肯定是 worldcat 的 xISBN api

在我的网站上,当人们搜索书籍时,我们有一个“更多版本”按钮......所以我会进行很多查询(并缓存它们)。

4

5 回答 5

4

您可以使用 OCLC 的xISBN API - 给它一个 ISBN,它会为您提供一组相同“工作”的所有 ISBN - 其他版本、翻译等。它将为您提供如下内容:

<?xml version="1.0" encoding="UTF-8"?>
<rsp xmlns="http://worldcat.org/xid/isbn/" stat="ok">
    <isbn form="BA" year="2004" lang="eng" ed="2nd ed.">0596002815</isbn>
    <isbn form="BA DA" year="1999" lang="eng">1565928938</isbn>
    <isbn form="BA" year="1999" lang="eng" ed="1st ed.">1565924649</isbn>
</rsp>

不幸的是,它不是免费的。这是定价

于 2010-09-16T07:33:46.360 回答
3

这个问题很老,但为了完整起见,我要补充一点,亚马逊产品广告 API 确实提供了一种查找书籍其他版本(和 ISBN 编号)的方法,但这涉及两个ItemLookup查询:

  • 获取父商品的 ASIN 的第一个查询,亚马逊称之为Authority Non Buyable;这是一个没有产品页面的虚拟产品,只是一个儿童产品的容器。
  • 第二个查询列出此父项的子项。

两个查询都必须包含以下参数:

  • ResponseGroup=RelatedItems,ItemAttributes
  • RelationshipType=AuthorityTitle

带有 ISBN 号的第一个查询如下所示:

...&IdType=ISBN&ItemId=9780345803481

<RelatedItems>
    <Relationship>Parents</Relationship>
    <RelationshipType>AuthorityTitle</RelationshipType>
    <RelatedItemCount>1</RelatedItemCount>
    <RelatedItemPageCount>1</RelatedItemPageCount>
    <RelatedItemPage>1</RelatedItemPage>
    <RelatedItem>
        <Item>
            <ASIN>B0058NLWEC</ASIN>
            ...
        </Item>
    </RelatedItem>
</RelatedItems>

第二个查询是使用第一个查询返回的父 ASIN 执行的B0058NLWEC

...&IdType=ASIN&ItemId=B0058NLWEC

<RelatedItems>
    <Relationship>Children</Relationship>
    <RelationshipType>AuthorityTitle</RelationshipType>
    <RelatedItemCount>42</RelatedItemCount>
    <RelatedItemPageCount>5</RelatedItemPageCount>
    <RelatedItemPage>1</RelatedItemPage>
    <RelatedItem>
        <Item>
            <ASIN>1445026570</ASIN>
            <ItemAttributes>
                <EAN>9781445026572</EAN>
                <ISBN>1445026570</ISBN>
                ...
            </ItemAttributes>
            ...
        </Item>
    </RelatedItem>
    <RelatedItem>
        <Item>
            <ASIN>1471305015</ASIN>
            <ItemAttributes>
                <EAN>9781471305016</EAN>
                <ISBN>1471305015</ISBN>
                ...
            </ItemAttributes>
            ...
        </Item>
    </RelatedItem>
    ...
</RelatedItems>

这列出了亚马逊已知的这本书的所有版本:精装本、平装本、Kindle、有声读物……

于 2014-12-29T10:04:45.377 回答
3

看看https://sourceforge.net/projects/isbntools/files/latest/download。该命令isbn editions ISBN会给你你想要的......

如果您是开发人员,您有https://pypi.python.org/pypi/isbntools

于 2014-04-02T12:19:40.787 回答
2

The ISBN DB provides a remote access API that will return various meta data formatted as XML. From browsing entries on their website, some of the ISBN entries include edition information as well.

Check out this API sample response:

<?xml version="1.0" encoding="UTF-8"?>
<ISBNdb server_time="2005-07-29T03:02:22">
 <BookList total_results="1">
  <BookData book_id="paul_laurence_dunbar" isbn="0766013502">
   <Title>Paul Laurence Dunbar</Title>
   <TitleLong>Paul Laurence Dunbar: portrait of a poet</TitleLong>
   <AuthorsText>Catherine Reef</AuthorsText>
   <PublisherText publisher_id="enslow_publishers">
    Berkeley Heights, NJ: Enslow Publishers, c2000.
   </PublisherText>
   <Summary>
    A biography of the poet who faced racism and devoted himself
    to depicting the black experience in America.
   </Summary>
   <Notes>
    "Works by Paul Laurence Dunbar": p. 113-114.
    Includes bibliographical references (p. 124) and index.
   </Notes>
   <UrlsText></UrlsText>
   <AwardsText></AwardsText>
   <Prices>
    <Price store_id="alibris" is_in_stock="1" is_new="0"
           check_time="2005-07-29T01:18:18" price="14.92"/>
    <Price store_id="amazon" is_in_stock="1" is_new="1"
           check_time="2005-07-29T01:18:20" price="26.60" />
   </Prices>
  </BookData>
 </BookList>
</ISBNdb>

Also, here is specific documentation on attributes in 'books collection' response XML.

于 2010-09-15T18:55:58.830 回答
0

1)使用相同的标题进行搜索 2)迭代响应列表(对于大多数书籍来说,这应该是 5-10 个结果,具有通用标题的书籍,例如“Python Programming”将导致很多结果,因此可能无法解决) 3) 查看 ISBN 号 + 发布日期的差异

我不记得有相同的直接api。

于 2010-09-14T10:21:17.137 回答