1

ASIN を指定してサードパーティの新品および中古 (マーケットプレイス) オファーのリストを取得するには、perl 経由で Amazon Product API を使用する必要があります。価格と、各オファーが Amazon によって処理されているかどうか (プライム/スーパーセーバー配送の対象) を確認できる必要があります。Net::Amazon モジュールを精査しましたが、これを行う方法がわかりません。

誰かが似たようなことをしましたか?

4

1 に答える 1

0

だから私はこれを自分で調べていました.Amazonが提供するアイテム'IsEligibleForSuperSaverShipping' => '1'にはオファーの属性があるようです. したがって、これは次のようになります。

my $ua = Net::Amazon->new(
    associate_tag => 'derpderp',
    token         => 'morederp',
    secret_key    => 'herpaderp',
);

my $rsp = $ua->search( asin => 'B000FN65ZG' );

if ($rsp->is_success()) {
    if (my $o = $rsp->{xmlref}->{Items}->{Offers}) {
        foreach my $offer (keys %{ $o }) {
            if ($o->{$offer}->{IsEligibleForSuperSaverShipping}) {
                # This is offered by Amazon.com
            } # if
        } # foreach
}
else {
    die "Error: ", $rsp->message(), "\n";
}
  • 執筆時点 (2013 年 11 月 4 日) では、ASIN は Amazon を通じて発送されることに注意してください。それは将来ではないかもしれません。

ここでの問題は、Net::Amazonそのアクセサーが魔法のように生成されることです (そして を使用していませんClass::Accessorが、古いので、許すことができます…)。{Items}上記の要素内の個々のオファーに対する正しいアクセサーが何であるかはわかりません。オブジェクトに到達することは一種の危険を伴いますが、この場合、適切なアクセサーを見つけることはそれほど難しくなく (自動的に生成されることを考えると)、それを除けば、オブジェクトに直接到達するのは快適だと思います。

また、著者の著者である Mike Schilli または現在のメンテナであるChristopher Boumenotに連絡することをお勧めします。特に、これが Amazon からの一貫した結果であり、API に追加できるものである場合はなおさらです。これに関する問題は、Amazon からの返品が一種の変数であることです。perldocを引用すると、

メソッドは、クエリから返される項目によって異なります。これが最も一般的なものです。これらはすべてアクセサーです。つまりMethod()、値を取得したりMethod($value)、フィールドの値を設定したりするために使用できます。

これにより、返される構造にそのキーが含まれていない可能性があるため、スーパーセイバーシッピングネスのリターンをテストできると仮定するのは難しくなります.

于 2013-11-04T20:02:18.487 に答える