web-dev-qa-db-ja.com

Amazon Product AdvertisingAPIからすべてのオファーのリストを取得します

AmazonAPIを使用して商品のすべてのオファーのリストを取得できるようにする必要があります。これは私が送信しているリクエストです:

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

ご覧のとおり、新しいオファーが3つあると表示されていても、1つのオファーしか返されません。誰もが最低のものだけでなく、すべてのオファーを取得する方法を知っていますか? Merchant ID = 'ALL'はそれを行いません。また、offerFull、offerSummary、offersなどの他の応答グループも行いません。

24

いくつかの調査を行った後、これはAPIでは不可能ですが、標準ページのHTMLを解析して詳細を取得できます。

1)HTMLの解析に http://simplehtmldom.sourceforge.net/ を使用します(phpを使用していない場合は、同様のものを見つける必要があります)

2)CURL(ヘッダーを設定してください。そうしないとAmazonがエラーになります) http://www.Amazon.com/gp/offer-listing/B007IJQDQQ/?condition=newhttp://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=

これがあなたが始めるのに十分な情報であることを願っています、申し訳ありませんが、私はしばらく前に書いた作業スクリプトにアクセスできません。

13
dciso

Product APIスクラッチパッド は「すべてのオファー」リンクを返します。このリンクを手動でHTTP経由でフェッチし、解析して、必要な情報を含むDOMノードのリストを提供できます。

enter image description here

これは、数年前に言及されたhttp://www.Amazon.com/gp/offer-listing/B007IJQDQQ/?condition=usedリンク@dcisoに似ていますが、Amazonのルールに厳密に従うのに役立つAPI情報が含まれています。

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