ノベライズしたいブログのURLか、RSSのURLを入力してください
URL :

ブックマークレット : [ノベライズ]  開発者ブログ : akiyan.com

:

愛・おぼえています?』より

ECサイト系WebAPIにちょっとだけ複雑なクエリーを渡す方法(というか雑感)

« 夏花之初[枣听:第17期] 欧文を使ったイメージを作成してくれる「typoGenerator」 »

オリジナルサイトのページへ

ノベログ生データ

redgasukiです。
ちょっとだけ複雑なクエリというのは
A and B and(C or D ) and (not E)
みたいな感じで、and、orやnotを指定して検索する場合を想定しています。
対象となるECサイト形WebAPIは、
楽天市場
Yahooショッピング
Amazon
バリューコマース
のWebAPIを使って行なう場合を想定しています。
 img http://ne2ma2.com/wakeari/img/wakelogo.gif
ただいま「ワケありーな」という訳あり商品を一括検索するサイトを絶賛公開中です。
ご意見やご要望があれば、是非こちらから、お願いします。
Yahooショッピング
 img http://blog.ne2ma2.com/wp-content/uploads/image77.png
http://developer.yahoo.co.jp/webapi/shopping/shopping/v1/itemsearch.html
Yahooショッピング商品検索APIのオンラインドキュメントに見ると、
全てANDか、ORしか出来ないような感じですが
今回の目的のクエリを一番きちんと処理してくれます
A and B and(C or D ) and (not E)
と書きたい場合、
&query=A B  (C D) –E
※UTF-8エンコードをする。他のAPIも同様
ただ、若干癖があり、例えば、「訳ありじゃない」というキーワードを含めないようにしたい場合、
訳あり -訳ありじゃない
と書いても、ダメ(検索結果から取り除かれない)だったりします。
色々試して、検索結果から見た経験則で、根拠となるようなソースはないのですが、
検索したいキーワードと取り除きたいキーワードが重ならなければ、大丈夫なようです
(どうもYahooショッピングAPIは、検索キーワードを日本語形態素解析してから、検索しているような気がします)
notを使うと件数が増えてしまう例
Yahooショッピング 「訳あり」で検索。40672件(2009/6/9現在)
http://shopping.yahoo.co.jp/search?first=1&p=%CC%F5%A4%A2%A4%EA&cid=&x=0&y=0
Yahooショッピング 「訳あり -訳ありじゃない」で検索。40813件(2009/6/9現在)
http://shopping.yahoo.co.jp/search?first=1&p=%CC%F5%A4%A2%A4%EA+-%CC%F5%A4%A2%A4%EA%A4%B8%A4%E3%A4%CA%A4%A4&cid=&x=0&y=0
件数の合計が正しい例
Yahooショッピング カテゴリ魚介・魚介加工品を「訳あり」で検索。1045件(2009/6/9現在)
http://shopping.yahoo.co.jp/search?first=1&p=%CC%F5%A4%A2%A4%EA&cid=939&x=0&y=0
Yahooショッピング カテゴリ魚介・魚介加工品を「訳あり かに」で検索。342件(2009/6/9現在)
http://shopping.yahoo.co.jp/search?first=1&p=%CC%F5%A4%A2%A4%EA+%A4%AB%A4%CB&cid=939&x=0&y=0
Yahooショッピング カテゴリ魚介・魚介加工品を「訳あり -かに」で検索。703件(2009/6/9現在)
http://shopping.yahoo.co.jp/search?p=%CC%F5%A4%A2%A4%EA+-%A4%AB%A4%CB&cid=939
Amazon
 img http://blog.ne2ma2.com/wp-content/uploads/image78.png
http://developer.amazonwebservices.com/connect/thread.jspa?messageID=40517
上記スレッドのとおり、仕様上は、and or notが同時に使えます
A and B and(C or D ) and (not E)
と書きたい場合、前から処理をしますので、
&Keywords
=C | D  A B - E
とクエリを渡します
わざわざ仕様上と書いたのは、例えば
1. A or B or C
2. A  or B or C or D
と書いた場合、2.の方が、検索結果が多くなるのが当然ですが、
amazon先生が返してくれる結果は、なぜか減ったりします、ね
いまいち信用していいのか、不安な部分もありますが 、
何しろ、他の追随を許さないくらいデータの豊富です。多少のことは目をつぶって・・・
楽天市場
 img http://blog.ne2ma2.com/wp-content/uploads/image79.png
楽天商品検索APIのオンラインドキュメントによると
指定した検索キーワードをAND またはORでの検索、およびそれとは別にNOTでの検索が出来ます
http://webservice.rakuten.co.jp/api/itemsearch/
指定出来るクエリ
A and B  and (not E)
と書きたい場合、
&keyword=A B&NGKeyword=E
ORを使いたい場合はorFlagを有効に
(C or D ) and (not E)
と書きたい場合、
&keyword=C D&orFlag=1&NGKeyword=E
色々と試してみたのですが、 ANDとORを一度に指定することは出来ないようです。
バリューコマース
 img http://blog.ne2ma2.com/wp-content/uploads/image80.png
バリューコマースのWebAPIは、残念ながら、notやorを指定することは出来ないようです。
https://www.valuecommerce.ne.jp/support/ptn/feature/api/download.html
リファレンスマニュアル
https://www.valuecommerce.ne.jp/support/ptn/feature/api/images/Webservice_API_reference.pdf
「訳あり」で検索してんのかw
ワケありーなのはてなブックマークにhttp://blog.fkoji.com/ の中の人からコメントを頂いたのですが、
 img http://blog.ne2ma2.com/wp-content/uploads/image76.png
http://b.hatena.ne.jp/entry/http://ne2ma2.com/wakeari/
そのとおりw
基本的には、API叩いて、表示するだけの簡単なお仕・・・
お礼に
つ 訳ありの梅酒
むしろ、大変だったのは、各ECサイトごとに思想の違うカテゴリを関連付ける作業で
チームのharryを中心にzakkiと2人が頑張っていました(←手伝っていない私・・・)
気が付いたら
ものすごい久しぶりのブログ更新