aws associates amazon-web-services amazon amazon-product-api

amazon-web-services - associates - amazon web service sign in



Obtenga una lista de TODAS las ofertas de Amazon Product Advertising API (2)

Necesito poder obtener una lista de todas las ofertas de un producto que utiliza la API de Amazon. Esta es la solicitud que estoy enviando:

http://webservices.amazon.com/onca/xml?Service=AWSECommerceService&Operation=ItemLookup&SubscriptionId=&AssociateTag=&Version=2011-08-01&ItemId=B007IJQDQQ&IdType=ASIN&ResponseGroup=Offers&Condition=All&MerchantId=All

Esto es devolver las siguientes ofertas:

<Offers> <TotalOffers>1</TotalOffers> <TotalOfferPages>1</TotalOfferPages> <MoreOffersUrl> http://www.amazon.com/gp/offer-listing/B007IJQDQQ%3FSubscriptionId%3DAKIAJTZ6VROOTPJAPPWQ%26tag%3Damazoautom-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D386001%26creativeASIN%3DB007IJQDQQ </MoreOffersUrl> <Offer> <OfferAttributes> <Condition>New</Condition> </OfferAttributes> <OfferListing> <OfferListingId> TR5sygI0VR7cwy3Hg0DBHwgCWFnkqXLyCR70jjMhy1h8gWlEisKYt5cqDbS2Fu1SEqDtfBILdxYDziJdFzfsqMpPJkBqcYV3DFovHx1nXWRy9wHS6CFZXknBvsCo1bxYS%2BsxAeYrZHrS6g6aakEJQA%3D%3D </OfferListingId> <Price> <Amount>375</Amount> <CurrencyCode>USD</CurrencyCode> <FormattedPrice>$3.75</FormattedPrice> </Price> <AmountSaved> <PercentageSaved>56</PercentageSaved> <Availability>Usually ships in 1-2 business days</Availability> <AvailabilityAttributes> <IsEligibleForSuperSaverShipping>0</IsEligibleForSuperSaverShipping> </OfferListing> </Offer> </Offers>

Como puede ver, solo devuelve la oferta 1 aunque dice que hay 3 ofertas nuevas. ¿Alguien sabe de una manera de obtener todas las ofertas y no solo la más baja? Id. De comerciante = ''ALL'' no lo hace, ni tampoco ninguno de los otros grupos de respuesta como offerFull, offerSummary u ofertas.


Después de investigar un poco, esto no es posible en la API; sin embargo, puedes analizar el HTML de la página estándar para obtener los detalles:

1) Usa http://simplehtmldom.sourceforge.net/ para analizar HTML (si no usas php, necesitarás encontrar algo similar)

2) CURL (asegúrese de configurar el encabezado o Amazon error) tanto http://www.amazon.com/gp/offer-listing/B007IJQDQQ/?condition=new y http://www.amazon.com/gp/offer-listing/B007IJQDQQ/?condition=new

3) Para manejar las páginas, cuente el número total de ofertas (se encontró #new span.numberreturned) y divida por 15 para calcular el número de páginas.

4) Necesitarás analizar cada página, las URL serían como algunas:

por ejemplo, la página 2 http://www.amazon.com/gp/offer-listing/B005IMB5SG/?condition=used&startIndex=15

por ejemplo, página 3 http://www.amazon.com/gp/offer-listing/B005IMB5SG/?condition=used&startIndex=15

Espero que esto sea suficiente información para empezar, lo siento, no tengo acceso al script de trabajo que escribí hace un tiempo.


El marcador de la API de producto devuelve un enlace "Todas las ofertas" que puede buscar manualmente a través de HTTP y analizar para proporcionar una lista de nodos DOM que contienen la información que necesita.

Es como el http://www.amazon.com/gp/offer-listing/B007IJQDQQ/?condition=used enlace @dciso mencionado hace varios años, pero con la información API contenida para ayudar a seguir las reglas de amazon más de cerca.

<ItemLookupResponse> <Items> <Item> <ASIN>B00I8BICB2</ASIN> <ParentASIN>B077PSDB4X</ParentASIN> <DetailPageURL>https://www.amazon.com/Sony-Mirrorless-Digitial-3-0-Inch-16-50mm/dp/B00I8BICB2?psc=1&SubscriptionId_____tag=_____&linkCode=xm2&camp=2025&creative=165953&creativeASIN=B00I8BICB2</DetailPageURL> <ItemLinks> ... <ItemLink> <Description>All Offers</Description> <URL>https://www.amazon.com/gp/offer-listing/B00I8BICB2?SubscriptionId=______&tag=_____&linkCode=xm2&camp=2025&creative=386001&creativeASIN=B00I8BICB2</URL> </ItemLink> </ItemLinks>