【Googleスプレッドシート】Amazonの商品URLから商品比較表を作る

公開:2020/09/28
更新:2020/09/28
4 min読了の目安(約2800字TECH技術記事

はじめに

Amazonで買い物をする時、商品の価格・画像などを並べて比較表を作ることがあるのですが、
表を作る作業ってなかなか手間がかかります。

今回、Amazonの商品ページURLから商品価格や画像を自動で表示させるようなものを作ってみたので紹介したいと思います。

やっていること

Amazonの商品URLから、
商品タイトル、価格、商品のサムネイルなどを自動で表示させています。

使用した商品URL

https://www.amazon.co.jp/dp/B07LGF375X/ref=sbl_dpx_B088JDR3J1_0

URLから商品タイトルを抽出

商品タイトルは商品ページhtmlのtitleタグの中に含まれているので、以下のIMPORTXMLで商品タイトルを取り出すことができます。

=IMPORTXML(商品URL,"//title")

結果

URLから商品価格を抽出

商品価格は、商品ページhtmlのspanタグ (id="price_inside_buybox")の中に入っているので、
以下のようなIMPORTXMLで商品価格を取り出すことができます。

=IMPORTXML(商品URL,"//span[@id='price_inside_buybox']")

結果

商品画像の取得・表示

以下のURLにアクセスすると、商品画像を取得することができます。

http://images-jp.amazon.com/images/P/商品番号.09.LZZZZZZZ.jpg

参考 : Amazon の商品画像を取得する

商品画像の取得にはASINが必要

商品画像を取得するには ASIN(商品番号) が必要になります。
ASINはAmazonの商品URLに含まれる10ケタの英数字で、dp/やproduct/の後に続きます。

例えば、以下の商品URLのASINはB07LGF375Xとなります。

https://www.amazon.co.jp/dp/B07LGF375X/ref=sbl_dpx_B088JDR3J1_0

URLからASINを抽出する

今回は正規表現(REGEX)を使用して、商品URLからASINを抽出します。

「/の後に続き、かつ英数字がちょうど10個続くような文字列」
を抽出すれば、ASINを取り出すことができそうです。

以下のようなREGEXEXTRACTでASINを抽出します。

=REGEXEXTRACT(商品URL,"/([A-Z0-9]{10})")

実行結果

元URL REGEXEXTRACTの結果
https://www.amazon.co.jp/dp/B07LGF375X/ref=sbl_dpx_B088JDR3J1_0 B07LGF375X

今回は抽出したASINをE2セルへ設定しました。

商品画像URLの生成

商品URLから商品番号(ASIN)を取得できたので、次は以下のURLを生成することを考えます。

http://images-jp.amazon.com/images/P/(商品番号).09.LZZZZZZZ.jpg

今回はASINはE2セルに格納しているので、以下で商品画像URLを生成することができます。

="http://images-jp.amazon.com/images/P/"&E2&".09.LZZZZZZZ.jpg"

商品画像の表示

スプレッドシートのIMAGE関数を使うと、スプレッドシートに商品画像を埋め込むことができます。

今回はE2セルに入力されているASINを利用して、商品画像を表示します。

=IMAGE("http://images-jp.amazon.com/images/P/"&E2&".09.LZZZZZZZ.jpg")

結果

最終結果

以上を利用することで、以下のような表を簡単に作ることができます。

まとめ

スプレッドシート2列目のセルの内容は以下のようになっています。

内容 セル セルの内容
商品URL A2 =IMPORTXML(A2,"//title")
タイトルの取得 B2 =IMPORTXML(A2,"//title")
価格の取得 C2 =IMPORTXML(A2,"//span[@id='price_inside_buybox']")
商品画像の表示 D2 =IMAGE(F2)
商品番号(ASIN)の取得 E2 =REGEXEXTRACT(A2,"/([A-Z0-9]{10})"))
商品画像URL F2 ="http://images-jp.amazon.com/images/P/"&E2&".09.LZZZZZZZ.jpg"

(商品画像URLと画像表示は別のセルに分けています)