Поиск на Amazon возвращает только 10 товаров

Я пытаюсь получить информацию о книгах с Amazon и передать эту информацию. в мое собственное веб-приложение. Проблема в том, что он вернул только 10 результатов. Как я могу получить результаты после первых 10?


person ohana    schedule 06.04.2010    source источник
comment
вы нашли какое-то решение, я также получаю только 10 элементов   -  person Deepanshu Goyal    schedule 04.12.2013


Ответы (1)


Я предполагаю, что вы используете операцию ItemSearch из Amazon Product Advertising API.

Ваш запрос должен выглядеть так:

http://ecs.amazonaws.com/onca/xml?
Service=AWSECommerceService&
AWSAccessKeyId=[AWS Access Key ID]&
Operation=ItemSearch&
Keywords=Edward%20Tufte&
SearchIndex=Books
&Timestamp=[YYYY-MM-DDThh:mm:ssZ]
&Signature=[Request Signature]

Это должно вернуть ответ, который выглядит так:

<TotalResults>132</TotalResults>
<TotalPages>14</TotalPages>
<Item>
  <ASIN>...</ASIN>
  <DetailPageURL>...</DetailPageURL>
  <ItemAttributes>...</ItemAttributes>
</Item>
<Item>
  <ASIN>...</ASIN>
  <DetailPageURL>...</DetailPageURL>
  <ItemAttributes>...</ItemAttributes>
</Item>
<Item>
  <ASIN>...</ASIN>
  <DetailPageURL>...</DetailPageURL>
  <ItemAttributes>...</ItemAttributes>
</Item>
...

Результаты ItemSearch разбиты на страницы; приведенный выше запрос вернет элементы с 1 по 10 (соответствующие странице 1). Чтобы получить дополнительные результаты, вам необходимо запросить другую страницу результатов. Для операции Amazon ItemSearch это делается путем указания параметра itemPage.

Вот код sudo, который извлечет все книги Эдварда Тафте или о нем, доступные на Amazon (до 400 страниц результатов):

keywords="Edward Tufte"

# itemSearch will create the Amazon Product Advertising request
response=itemSearch(Keywords=keywords, SearchIndex="Books")
# Do whatever you want with the response for the first page
...

# getTotalPagesFromResponse will parse the XML response and return the totalPages
# (14 in the above example). 
totalPages = getTotalPagesFromResponse(response)
If totalPages > 1
  # Note that you cannot go beyond 400 pages (see [1])
  # Or you can limit yourself to a smaller number of pages
  totalPages=min(400,totalPages)

  page=2
  while page < totalPages
    response=itemSearch(Keywords=keywords, SearchIndex="Books", ItemPage=page)
    # Do whatever you want with the response
    ...
    page=page+1

Ссылка: [1] Документация по продукту ItemSearch Amazon (доступна по адресу http://docs.amazonwebservices.com/AWSECommerceService/2010-11-01/DG/ItemSearch.html)

person user635090    schedule 22.04.2011
comment
max itemPage в версии API 2011-08-01 (текущая) имеет значение 10 docs.aws.amazon.com/AWSECommerceService/latest/DG/ - person AlessMascherpa; 18.02.2014