Spreadsheet-importxml-Eyecatch

広告

ImportXML関数の使い方!スプレッドシート上でサジェストを取得しよう!

2017年9月1日

ImportXMLでサジェスト取得する構文を作ろう

では何となく「Xpathの内容」が理解出来たところで、早速「サジェストキーワードを取得する構文」を作っていきましょう!

今回はスプレッドシートの

  • A1セルにメインキーワードを入力
  • A3セル以降にサジェストを反映

という形を作っていきます。

冒頭でご紹介したコチラですね↓

ImportXML関数でサジェストキーワードを取得するには、構文内にサジェストを拾ってくるURLを指定しなければなりません。

ImportXMLの構文は

=IMPORTXML(URL, XPath クエリ)

なので

=importXML("https://www.google.com"&A1...

と入力したいところ。

だがしかし、これだと単純にGoogle検索窓の指定なので(当たり前ですが)エラーになってしまいます(^q^)

サジェストを取得するImportXMLの書き方

正解はコチラ↓

=ImportXML("http://www.google.com/complete/search?hl=en&output=toolbar&q="&A1,"//suggestion/@data")

あひる
あひる
え?Xpashも理解してないのによく正解導けたじゃん?

もちろんImportXMLの記述については、しっかり参考にさせていただきました↓

参考1:Google suggest API

参考2:Googleサジェスト結果を取得する

importXML関数の第1関数であるURLに『Google suggest API』を指定することで、「サジェストキーワード」を取得出来るようになります。

ImportXML関数の引数指定のコツ

以下赤字がimportxmlの第1関数で、指定したURLです。

=ImportXML("http://www.google.com/complete/search?hl=en&output=toolbar&q="&A1,

あひる
あひる
「Google suggest API」...な、なんなんだそれ...
ううこ
ううこ
Googleが提供している「検索キーワード候補を取得するプログラム」のことだ。モチロンGoogleで検索されたサジェストを取得する。

また第2関数となる「Xpath指定」は「Googleで検索されたサジェストキーワード」を取得したいので、

//suggestion/@data

となります。

このXpathは「"suggestion"要素に従属する"date"を選択する」という意味。

よく分からないので、分解してみます。

//suggestion...Google suggest API で取得した要素ノード suggest を全て選択する。

/@date...コンテキストノードsuggest の date属性 を選択する。

Windowsで言うと、フォルダの場所を指定するニュアンスに似てる気がします。

" / "が、「その要素の中の〜」という感じ。

というわけでサジェストキーワードの「Xpathの理解」はコチラを参考にさせていただきました↓

それぞれの構文とその意味

構文 意味
para コンテキストノードの子要素 para を選択する
* コンテキストノードのすべての子要素を選択する
text() コンテキストノードのすべての子テキストノードを選択する
@name コンテキストノードの name 属性を選択する
@* コンテキストノードのすべての属性を選択する
para[1] コンテキストノードの 1番目の子要素 para を選択する
para[last()] コンテキストノードの最後の子要素 para を選択する
//para ルートノードの子孫ノードから要素ノード para をすべて選択する。つまり、コンテキストノードと同じ文書内のすべての para 要素を選択する
.(ピリオド) コンテキストノードを選択する
..(ダブルピリオド) コンテキストノードの親を選択する
chapter[title="Introduction"] コンテキストノードの子要素 chapter のうち、文字列値が Introduction である子要素 title を 1個以上持つものを選択する
chapter[title] コンテキストノードの子要素 chapter のうち、子要素 title を 1個以上持つものを選択する
employee[@secretary and @assistant] secretary 属性と assistant 属性の両方をもつコンテキストノードの子要素 employeeをすべて選択する

出典:http://www.techscore.com/

これらを組み合わせると...

=ImportXML("http://www.google.com/complete/search?hl=en&output=toolbar&q="&A1,"//suggestion/@data")

となり、サジェストキーワードをスプレッドシート上で取得出来るようになります\(^o^)/

あひる
あひる
「Xpath」、奥が深すぎるぜ...

ImportXMLを使った応用

サジェストキーワードを取得する以外でも

  • 記事のアイキャッチ画像
  • タイトル
  • URL

といったデータも、スプレッドシート上にまとめることが出来ます。

Importと名付けられただけあって、オンラインでデータ取得してくるのでスプレッドシート上から最新情報の取得が可能です。

例えばベンチマークしているサイトの※情報を、スプレッドシートにまとめておくことも出来ちゃいます。

Chromeの「検証」という機能をつかって”ブラウザに表示されているサイトのソース”を見ながら行います。

とはいっても僕の理解ではまだまだですが...この辺りはXpathの記事と一緒に紹介出来たらなとがががんばります(泣)

scriptスプレッドシート行・列固定をワンクリックで!コピペでカンタンに再現出来るよ!

まとめ. ImportXML関数なら簡単にデータ収集ができるぞ

ImportXML関数は日頃から

  • HTML
  • RSS
  • XML

などを触っている方であれば難なく理解出来ると思いますが、普段Excelしか使ってないよwっていう方(あたす)にとってはかなりハードル高めな関数。

ですが理解出来ればこれ以上ないお役立ち関数になること必須!

OYAKUN
OYAKUN
もうちょっと理解を深めて記事作成・管理をもっと簡単にしていく次第です

関連記事: Xpathの使い方が分からない!けどChromeの検証使ってみたら・・
関連記事: 【スゴイ】スプレッドシートimportrange関数の使い方!他シートのデータを取り込めるゾ!
関連記事: スプレッドシートquery関数の使い方!vlookupより断然オススメ!