2010-04-06 4 views
3

J'essaie d'obtenir des informations sur les livres d'Amazon et de nourrir cette information. à ma propre application web. Le problème est qu'il n'a renvoyé que 10 résultats. Comment puis-je obtenir les résultats après les 10 premiers?Recherche Amazon seulement renvoie 10 articles

+0

avez-vous trouvé une solution, je reçois également seulement 10 articles –

Répondre

3

Je suppose que vous utilisez l'opération ItemSearch de l'API Amazon Product Advertising.

Votre demande devrait ressembler à:

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] 

Cela devrait renvoyer une réponse qui ressemble à:

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

résultats itemSearch sont paginé; la demande ci-dessus retournera les éléments 1 à 10 (correspondant à la page 1). Pour obtenir des résultats supplémentaires, vous devez demander une page de résultats différente. Avec l'opération Amazon ItemSearch, vous le faites en spécifiant le paramètre itemPage.

Voici le code sudo qui chercher tous les livres par ou sur "Edward Tufte" disponible sur Amazon (jusqu'à 400 pages de résultats):

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 

Référence: [1] itemSearch Amazon Produit Documentation (Disponible à http://docs.amazonwebservices.com/AWSECommerceService/2010-11-01/DG/ItemSearch.html)

+3

max itemPage sur API version 2011-08-01 (en cours) est fixé à 10 http://docs.aws. amazon.com/AWSECommerceService/latest/DG/PagingThroughResults.html – AlessMascherpa

Questions connexes