2010-04-06 3 views
3

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

+0

сделал yo найти решение, я получаю только 10 элементов –

ответ

3

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

Ваш запрос должен выглядеть следующим образом:

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.

Вот Судо код, который будет получать все книги или о «Эдвард Тафт» доступен на 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)

+3

max itemPage on API version 2011-08-01 (текущий) установлен в 10 http://docs.aws. amazon.com/AWSECommerceService/latest/DG/PagingThroughResults.html – AlessMascherpa