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などの他の応答グループも行いません。
いくつかの調査を行った後、これはAPIでは不可能ですが、標準ページのHTMLを解析して詳細を取得できます。
1)HTMLの解析に http://simplehtmldom.sourceforge.net/ を使用します(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=
これがあなたが始めるのに十分な情報であることを願っています、申し訳ありませんが、私はしばらく前に書いた作業スクリプトにアクセスできません。
Product APIスクラッチパッド は「すべてのオファー」リンクを返します。このリンクを手動でHTTP経由でフェッチし、解析して、必要な情報を含むDOMノードのリストを提供できます。
これは、数年前に言及された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>