Получить список всех предложений от Amazon Product Advertising API

мне нужно иметь возможность получить список всех предложений для продукта с помощью API amazon. Это запрос, который я посылаю:

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

это возвращает следующее под предложениями:

<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>.75</FormattedPrice>
</Price>
<AmountSaved>
<PercentageSaved>56</PercentageSaved>
<Availability>Usually ships in 1-2 business days</Availability>
<AvailabilityAttributes>
<IsEligibleForSuperSaverShipping>0</IsEligibleForSuperSaverShipping>
</OfferListing>
</Offer>
</Offers>

Как вы можете видеть, он возвращает только 1 предложение, хотя он говорит, что есть 3 новых предложения. Кто-нибудь знает, как получить все предложения, а не только самые низкие? Merchant ID= 'ALL' этого не делает, как и другие группы ответов, такие как offerFull, offerSummary, или предложения.

2 ответов


после проведения некоторых исследований это невозможно в API, однако вы можете проанализировать HTML стандартной страницы, чтобы получить подробную информацию:

1) Использовать http://simplehtmldom.sourceforge.net/ для синтаксического анализа HTML (если вы не используете php, вам нужно найти что-то подобное)

2) CURL (убедитесь, что вы установили заголовок или amazon будет ошибка) обаhttp://www.amazon.com/gp/offer-listing/B007IJQDQQ/?condition=new и http://www.amazon.com/gp/offer-listing/B007IJQDQQ/?condition=used

3) для обработки страниц Подсчитайте общее количество предложений (найдено #new span.numberreturned) и разделить на 15, чтобы выработать количество страниц.

4) вам нужно будет проанализировать каждую страницу, URL-адреса будут похожи на некоторые:

например, страница 2 http://www.amazon.com/gp/offer-listing/B005IMB5SG/?condition=used&startIndex=15

например, страница 3 http://www.amazon.com/gp/offer-listing/B005IMB5SG/?condition=used&startIndex=30

надеюсь, этого достаточно, чтобы вы начали, извините, у меня нет доступа к рабочему сценарию, который я написал некоторое время назад.


на продукт API scratch pad возвращает ссылку" Все предложения", которую вы можете вручную получить по HTTP и проанализировать, чтобы предоставить список узлов DOM, которые содержат необходимую вам информацию.

enter image description here

Это как http://www.amazon.com/gp/offer-listing/B007IJQDQQ/?condition=used ссылка @dciso упоминается несколько лет назад, но с информацией API, содержащейся, чтобы помочь следовать правилам amazon ближе.

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