Поиск выпусков книги - PullRequest
       48

Поиск выпусков книги

7 голосов
/ 05 сентября 2010

Есть ли способ просмотреть различные издания книги на основе ее ISBN с помощью API рекламы продуктов Amazon?

И, в более общем смысле, каковы различные варианты поиска метаданных издания в книге? Я точно знаю только один API-интерфейс xISBN от worldcat

На моем сайте есть кнопка «больше изданий», когда люди ищут книги ... поэтому я буду делать много запросов (и кэшировать их).

Ответы [ 5 ]

4 голосов
/ 16 сентября 2010

Вы можете использовать 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>

К сожалению, это не бесплатно. Вот цены .

3 голосов
/ 29 декабря 2014

Этот вопрос старый, но для полноты картины я добавлю, что Amazon Product Advertising API действительно предлагает способ поиска других выпусков (и номеров ISBN) книги, но это включает два ItemLookup запроса. :

  • первый запрос для получения ASIN родительского элемента, который Amazon называет 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>

В этом списке перечислены все издания этой книги, известные Amazon: переплет, мягкая обложка, Kindle, аудиокнига, ...

3 голосов
/ 02 апреля 2014

Посмотрите на https://sourceforge.net/projects/isbntools/files/latest/download. Команда isbn editions ISBN даст вам то, что вы хотите ...

Если вы разработчик, у вас есть https://pypi.python.org/pypi/isbntools.

2 голосов
/ 15 сентября 2010

ISBN DB предоставляет API удаленного доступа , который будет возвращать различные метаданные в формате XML.От просмотра записей на их веб-сайте, некоторые из записей ISBN также включают информацию об издании.

Ознакомьтесь с этим примером ответа API:

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

Кроме того, здесь приведена специальная документация об атрибутах в XML-файле ответа "коллекция книг".

0 голосов
/ 14 сентября 2010

1) поиск с одинаковым названием 2) Выполните итерацию по списку ответов (который должен иметь 5-10 результатов для большинства книг, книги с общими названиями, такими как «Программирование на Python», приведут к большому количеству результатов, поэтому могут не сработать) 3) увидеть разницу в номере ISBN + дата публикации

Я не помню, чтобы был прямой API для того же.

...