Amazon商品紹介用のリンクタグを生成するブックマークレット♪
最近、買い物系のネタが多いなぁと思い、hiro45jpさんが作成してくれたiPhoneアプリ紹介用ブックマークレットのインタフェースでAmazon版が欲しくなったので、作ってみました。
Amazon.co.jpから商品を検索し、リンクタグを生成します。
さっそく紹介してみたいと思います。
pipeとブックマークレット
hiro45jpブックマークレットのパクリですので、同様にサーバ側のpipeとクライアント側のブックマークレットで構成されます。
- Pipes: AmazonHTML
- ブックマークレット: AmazonHTML(そのまんま使える版)
- ブックマークレット: AmazonHTML(iPhone/iPad用リンク)
- ブックマークレット: AmazonHTML(DraftPad対応版)
- ブックマークレット:AmazonHTML(Textforce対応版)
iPhone/iPad用はいつものように「javascript:〜よりも前」(http://d.matu.biz/~?まで)を削除して使います。
Pipesは結構いじったけど、ブックマークレットはほぼそのまんまです。hiro45jp式ブックマークレットすごい汎用性Σ(´∀`;)
セットアップ方法
まずは、Pipes: AmazonHTMLのページに飛んでいただいて、「Clone」を押して複製します。
複製したPipeで「Edit Source」から必要な箇所を修正し、「Save」で保存します。
Pipe Web Address:
あとでブックマークレットからしていするアドレスです。修正は任意ですが、なるべくわかりやすいほうがいいかもですね。
アソシエイトID
Amazonでアフィリエイトをやっている方はアソシエイトIDを入れます。xxxx-22ってやつですね。
マークアップ
HTMLタグをお好みで記載します。以下の識別子が使用できます。
${title} | 商品のタイトル |
---|---|
${author} | 商品の著者、メーカー。 |
${price} | 価格。セール中の物はセール価格。 |
${itemurl} | 商品のURL |
${imgurl} | 商品画像のURL |
ちなみに、デフォルトでは以下のようなマークアップにしています。
<div><a href="${itemurl}"><img style="float: left;" src="${imgurl}" alt="" /></a> <strong><a href="${itemurl}">${title}</a></strong><br /> ${author}<br /> ${price}<br /> <br style="clear: both;" /></div>
結果表示件数
ブックマークレットを使用する際、探したい表品のキーワードを入力します。
キーワードにマッチした商品が多かった場合、その後の操作が煩わしくなるので、ここで指定する件数より多くの結果を返さなくします。
検索カテゴリ
デフォルトはすべてのカテゴリー(blended)から検索します。でも例えば書評が中心の方はここをbooksなどと変更すると、より精度の高い検索ができます。追々…。
検索タイトル
修正の必要はありません。ブックマークレットからこのキーワードを入力します。
以上、必要な箇所の修正が終わったら、ブックマークレットの
p='http://pipes.yahoo.com/matubiz/pubamazonhtml'
赤字の部分を複製したpipeのアドレスに変更します。
実際に使うとこんな感じ
まず、登録したブックマークレットを起動します。
プロンプトが表示されるので、検索したい商品のキーワードを入力しOKをタップ。
結果が返されます。表示件数を3件にしているので、1/3〜3/3まで3件繰り返し、確認のダイアログが上がります。
目的の商品のタイトルだったらOK、そうでなければキャンセルをタップ。
リンクタグがプロンプトで表示されるので、あとはこれをコピペして使います。
こんな感じです。
注意書き
いくつか注意書きというか言い訳をさせてください。
- できたてホヤホヤでバグがあるかもしれません(;^ω^)
- APIは一切使わず、かなり強引にスクレイピングしています。他のpipeにも言えることですが、あるひ突然使えなくなる可能性があります。
- キーワードに対するAmazonの結果(コンテンツのサイズ)が大きいとYahoo!pipes側でオーバーフローを起こし、結果が全く返ってこないことがあります(;^ω^)
できるだけ、ピンポイントでマッチしやすいキーワードを入力するのが良いと思います。
ではでは、良かったら使ってみて下さいね(^^)/~