Я пытаюсь получить информацию о книгах с Amazon и передать эту информацию. в мое собственное веб-приложение. Проблема в том, что он вернул только 10 результатов. Как я могу получить результаты после первых 10?
Поиск на Amazon возвращает только 10 товаров
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
max itemPage в версии API 2011-08-01 (текущая) имеет значение 10 docs.aws.amazon.com/AWSECommerceService/latest/DG/
- person AlessMascherpa; 18.02.2014