IMPORTXML関数とINDEX関数を使ってAmazonのURLからレビューの星の数を取得する

当サイトではアフィリエイト広告を利用して商品を紹介しています。

とある事情でAmazonのURLからその商品の星の数を取得する必要がありました。
もともと関数で取得できていたのですが、突然取得ができなくなってしまい、GASで独自の関数を作ったりといろいろ試行を重ねていましたが下記の関数で取得が可能なようです。

ぱっとみ複雑さを感じたので、今話題のChatGPTを使って解説してもらいました。

作成した関数

=INDEX(IMPORTXML(A2,"//*[@id='acrPopover']//*[@class='a-icon-alt']"),1)
使用イメージ

関数の解説

これはGoogleスプレッドシートで使用される関数の一組であり、IMPORTXML関数とINDEX関数を組み合わせたものです。

IMPORTXML関数は、指定したURLのHTMLから指定したXPathに一致する要素を取得します。
例えば、A2にURLが入力されて、"//[@id='acrPopover']//[@class='a-icon-alt']"がXPathになっている場合、そのURLにアクセスして、idがacrPopoverで、classがa-icon-altの要素を取得します。

そして、INDEX関数は、取得した要素の中からインデックス番号に対応する要素を取り出します。この場合、1が指定されているため、取得した要素の中で最初の要素が取り出されます。

つまり、この関数は、A2に入力されたURLにアクセスし、idがacrPopoverで、classがa-icon-altの要素の中から最初の要素を取得します。