开发者

Looking up Editions of a Book

开发者 https://www.devze.com 2023-01-14 16:50 出处:网络
Is there a w开发者_Go百科ay to look up the various editions of a book based on its ISBN using the Amazon Product Advertising API?

Is there a w开发者_Go百科ay to look up the various editions of a book based on its ISBN using the Amazon Product Advertising API?

And, more generally, what are the various choices for looking up edition metadata on a book? Only one I know of for sure is the xISBN api from worldcat

On my site we have a "more editions" button for when people search for books.. so I'd be making a lot of queries (and cacheing them).


You could use OCLC's xISBN API - give it an ISBN and it gives you a set of all ISBNs that are the same "work" - other editions, translations, etc. It will give you something like this:

<?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>

Unfortunately, it is not free. Here is the pricing.


Take a look at https://sourceforge.net/projects/isbntools/files/latest/download. The command isbn editions ISBN will give you what you want...

If you are a developer you have https://pypi.python.org/pypi/isbntools.


This question is old, but for the sake of completeness, I'll add that Amazon Product Advertising API does offer a way to look up other editions (and ISBN numbers) of a book, but this involves two ItemLookup queries:

  • a first query to get the ASIN of the parent item, that Amazon calls Authority Non Buyable; this is a virtual product that has no product page, and is just a container for children products.
  • a second query to list the child items of this parent.

Both queries must include the following parameters:

  • ResponseGroup=RelatedItems,ItemAttributes
  • RelationshipType=AuthorityTitle

The first query with an ISBN number would look like:

...&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>

The second query is performed with the parent ASIN returned by the first query, 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>

This lists all editions of this book as known by Amazon: hardcover, paperback, Kindle, audiobook, ...


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.


1) search with the title being same 2) Iterate over the response list (which should be of 5-10 results for most books, books with generic titles like say "Python Programming" will result in lot of results hence may not work out) 3) See difference in ISBN number + Published Date

I don't recall there being a direct api for the same.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号