ぺんちゃん日記

食と歴史と IT と。 Web の旅人ぺんじろうが好奇心赴くままに彷徨います 。

【AutoHotkey】編集中のはてなブログの記事にAmazon ページから Amazon リンクを埋め込む。

f:id:yasushiito:20190403184928p:plain

問題を抱えている。

はてなブログの記事に Amazon の商品を紹介したい時のことです。
紹介したいアイテムの URL を貼り付けたらそれっぽくなってくれると思うじゃないですか。

Amazon の url を編集フォームにコピペしてみてください。
きっとこんな感じになると思います。

www.amazon.co.jp

残念ながら商品のイメージが表示されません。
しかもアフィリエイトとしても効果はありません。

はてなブログAmazon 商品紹介したい時はサイドバーに表示される Amazon 商品紹介機能で記事に貼り付けます。

f:id:yasushiito:20190507153255j:plain

こんな感じになります。

現代語訳 論語と算盤 (ちくま新書)

現代語訳 論語と算盤 (ちくま新書)

しかしこれが大変手間がかかります。
というのも手順がとても非効率。
検索ボックスに商品名を入力してリスト表示されるアイテムを選択する流れでしか埋め込めないからです。
そうなんです。
必要なのは商品名なんです。
商品名による検索って役に立ちます?
似たようなアイテムまで引っかかってしまって自分が何を紹介したいのか区別つかなくなりません?
例えば本を紹介したい場合、書籍と Kindle 版があるはずですが、簡単には区別がつかないですね。
さらに書籍にはハードカバーと文庫本があるものもあります。
ロングセラーになると改訂版があることも。
後から貼り間違えているのに気がついて修正することもしばしばです。
はてな公式で提供されている機能が使いにくいったらありゃしない。
かといって表示ページの中から asin コードを抜き出してコピペするとか、正気を保ったまま作業できません。
この辺多分専用のアフィリエイターの方々はとっても便利な有料ツールを使っていると思われますが、私にはそこまでの意欲はございません。

結局私は何がしたいのか。

ただただはてなの [asin:で始まる Amazon 記法で埋め込みできればいいだけなんです。
Amazon の商品には必ず asin コードというのが割り当てられています。
商品ページに表示されています。

f:id:yasushiito:20190507153749p:plain

中には表示スタイルが違う商品にも出くわすことがあります。
もう一つ asin コードが含まれるものに URL があります。
商品の URL の次の部分を注目してください。

f:id:yasushiito:20190507154007p:plain

この部分が asin コードです。
中には違うスタイルの商品はあるかもしれませんが、今回はそういう商品は考えないことにします。
この記事を書いている間にもgp/product/で始まる商品も見つけてしまいました。

私ははてな記法で記事を書いているので次のようになります。

[asin:asinコード:detail]

ページの中から asin コードを探し出してタブを作成すれば良いのですね。
そこでいつも通りAutoHotkeyで自動化します。

スクリプトの仕様。

  • Google Chromeはてなブログの記事を新規作成で編集しておいて、別のタブで Amazon の商品ページを閲覧していることとします。
  • この状態でスクリプトを実行すると、商品ページの URL を取り込み、 asin コードと思われる部分を取り出します。
  • asin コードの判定はdp/で始まる英数字の羅列とします。
  • その asin コードを使ってはてな記法Amazon 埋め込みリンク(詳細版) をクリップボードに転送します。
  • Chrome のタブを選択してブログの編集ページを表示させたら、クリップボードからペーストします。挿入位置はカーソルに従います。
  • リンクを挿入したい場所にあらかじめ入力カーソルを移動させておきます。

スクリプトの解説。

ほとんどが過去に作った編集中のブログ記事に挿入型のプログラムと同じですね。
独自の部分は正規表現による asin コードの抽出でしょう。
正規表現を使うことで強力な文字列操作を行うことができます。
初心者には難しいと思いますが、 Auto HOT key 以外のプログラミング言語でも同じように使えるので、習得して公開することは絶対にありません。

まずはdp/を手がかりにして探します。
正規表現では\wで英数字を検索することができます。
*を後ろにつけることで、英数字が続く限りヒットし続けるようにできます。
余分に引っかかったdp/を削除すれば残った部分は asin コードです。

注意点としては、 URL に偶然dp/という組み合わせが入り込んでしまうと認識をミスします。

ahkwiki.net

まとめ。

これで紹介したいアイテムを間違えて貼り付けることはなくなりました。
記事を書くときは商品ページをひらいで確認しながら作業するので作業工程は短縮されたと思います。
Amazon の asin のことをきちんと理解しないまま作成しているので穴はたくさんあると思います。
問題が発生するたびに修正を重ねていきたいと思います。

この記事に登場するAutohotkey スクリプトについて

この記事の中で私が作成したプログラムは、全て自由に使うことができます。
詳しくはこちら