キーワード一覧にamazon.co.jpからの検索結果を導入

キーワード一覧にて、キーワードを含む記事が存在しない、もしくは「キーワードを含むキーワード一覧」しかない場合に限定して、Amazonの検索結果が入るようにしました。

つまりWikiPageのタイトルに完全一致するキーワードが存在する場合と、WikiPageのタイトル以外で部分合致する記事が存在する場合には、Amazon.co.jpの商品検索結果は表示されません。

全部に入れると便利は便利でしょうけど、そのへんは、とりあえずキャッシュを考えてからにしようと思います。

コードはhttp://www.oreilly.com/pub/h/464を参考にECS4.0のパラメータに変更してこさえてみました。

作成中に出くわした問題はあまりありませんでしたが、キーワードによっては

Not an ARRAY reference at (略).

とエラーが出るのには困惑しました。エラー行は XML::Simple のインスタンスの作成行を示しているので、なおさらです。

しかし検索結果が一件しかないときにエラーになるのだとわかったので、Perl モジュール XML::Simple の使い方の「サンプルコード2: forcearray => 配列の参照」を参考にして、ItemをForceArray指定してやることで上手く行くようになりました。

一つしか商品がない場合には配列にならないため、 foreach my $result (@{$response->{Items}->{Item}}) がエラーになるわけですね。

この記事へのトラックバックURL:

http://drupal.cre.jp/trackback/106
Drupal.cre.jp から 水, 2007-01-31 19:14 受信

キーワード一覧にて、温泉旅行などのキーワードで人妻不倫旅行特別篇などアダルト商品ばかり入っていたので、アマゾンだと検索で18禁のも出てくるのだということに気がつき、対処しま

Drupal.cre.jp から 火, 2007-01-30 22:25 受信

キーワード一覧にamazon.co.jpからの検索結果を導入のコードを流用して、先ごろ開始された楽天市場のウェブサービスを試してみました。


この記事をブックマーク

人気コンテンツ