GoogleスプレッドシートでWebデータを取得するIMPORTFEED関数の使い方


IMPORTFEED2サムネイル

こんにちは!もり(@moripro3)です!

前回の記事では、GoogleスプレッドシートのIMPORTFEED関数を紹介するシリーズの第一歩として、フィードURLの確認方法を紹介しました。

Webサイトの新着記事をいち早く取得!RSSフィードのURLを確認する方法
Webサイトの新着記事を自動で配信してくれる便利なフィードを活用しよう!「フィードとは何か?」「フィードのURLを確認する方法」についてお伝えします。

今回は、GoogleスプレッドシートのIMPORTFEED関数を使用して、フィードを取得する方法を紹介していきます。

スプレッドシート内で完結するSUM関数やIF関数などに比べると、外部接続する(Webデータを取得する)関数はちょっと不思議な感じがするかもしれませんね。

ていねいに解説していきますのでご安心ください!

前回のおさらい:フィードとは

フィードとは、Webサイトの概要・更新情報などを配信するデータのことです。

当ブログの「フィードのURL」がこちらです→https://tonari-it.com/feed/

フィードの中身はこのようなXMLファイルでしたね。

importfeed1-5

IMPORTFEED関数とは

IMPORTFEED関数とは、XML形式のフィードを、スプレッドシートにインポートする関数です。

関数の構文がこちらです。

IMPORTFEED(フィードURL, [クエリ], [見出し], [アイテム数])

引数が4つあります。

引数 省略の可否 説明
フィードURL 必須 フィードURLを指定する
クエリ 省略可 取得するデータの内容を指定する
見出し 省略可 先頭行に列見出しを含めるかを指定する
アイテム数 省略可 直近のアイテムから順に、取得するアイテムの数を指定する

それでは、実際に使いながら慣れていきましょう!

IMPORTFEED関数でフィードを取得する

IMPORTFEED関数は、Webサイトからデータを取得するため、インターネット接続が必要です。オフラインでは使用できません。

新規のスプレッドシートを開きます。

フィードを取得する[クエリ] は feed です。

A1セルに =IMPORTFEED() と入力し、引数を2つ指定します。

  1. フィードURL(https://tonari-it.com/feed
  2. クエリ(feed

引数をダブルクォートで囲むのをお忘れなく!

=IMPORTFEED("https://tonari-it.com/feed","feed")

タイトルやURLなどのフィード情報を含む1行が返されます。

importfeed2-2

 

第1引数のフィードURLは、「セルの参照」も可能です。

A1セル(黄色)に、あらかじめフィードURLを入力しておきます。
A2セルにIMPORTFEED関数を入力し、フィードURLはA1セルを参照します。

importfeed2-3

見出しの有無を指定する

第3引数で[見出し]の有無を指定できます。(指定しない場合、無しの扱いになります)

  • true = 先頭行に見出しが含まれる
  • false = 先頭行に見出しが含まれない

第3引数にtrueを指定して、列の見出しを付けた結果がこちらです。

=IMPORTFEED("https://tonari-it.com/feed","feed",true)

importfeed2-4

関数を入力するときの注意点

IMPORTFEED関数の結果が返されるセルに値が入力されている場合、取得結果が展開されずエラーとなります。

ここでは、A2セルに”あいうえお”と文字を入力しています。A1セルに関数を入力しても、結果が展開されずエラーとなります。

importfeed2-7

フィードのタイプを指定して取得する

第2引数[クエリ]に”feed <type>” を指定すると、フィードの特定の属性が返されます。

typeには下記の4種類があります。

引数の指定 取得できる内容
“feed title” タイトル
“feed description” 説明
“feed author” 作成者
“feed url” WebサイトのURL

いずれも、ダブルクォートで囲むのを忘れずに!

“feed title”を指定して、フィードの「タイトルのみ」を取得した結果です。

importfeed2-6

IMPORTFEED関数でアイテムを取得する

つぎに、アイテムを取得してみましょう。

アイテムとは「記事」のことです。今ご覧いただいているこのページが、IMPORTFEED関数が指す「アイテム」です。

件数を指定してアイテムを取得する

アイテム数を指定しない場合、フィードに現在公開されているすべてのアイテムが取得されます。スプレッドシート上で見にくくなるので、ここではアイテム数を指定します。

第2引数の[クエリ]に items を指定します。

=IMPORTFEED("https://tonari-it.com/feed","items",true,5)

列見出しあり・最新の5件を取得しています。

importfeed2-8

※タイムゾーンが日本時間でないWebサイトの場合、Date Createdが9時間遅れています。(経度0度のグリニッジ天文台と比べて日本は9時間進んでる、というアレです)

たとえば、キャプチャ2行目のアイテム「Thu, 17 Jan 2019 02:45:24」は、実際の投稿時刻は「Thu, 17 Jan 2019 11:45:24」です。

アイテムのタイプを指定して取得する

第2引数の[クエリ]に”items <type>”を指定すると、アイテムの特定の属性が返されます。

typeには、下記の4種類を指定できます。

  • title(アイテムのタイトル)
  • summary(ハイパーリンクと画像を除くアイテムのコンテンツ)
  • url(アイテムのURL)
  • created(アイテムの投稿日)のいずれかを指定します。

“items title”を指定した結果です。列見出しあり・最新の5件を取得しています。

importfeed2-8-2

最新のアイテムが取得できない場合の対処法

フィードを発信しているWebサイトの設定によっては、IMPORTFEED関数でリクエストされた結果をキャッシュとして残しているため、古い結果が配信される場合があります。

対処法を2つ紹介します。

方法1.フィードURLにトレイリングスラッシュ(末尾のスラッシュ)を付ける

https://tonari-it.com/feed/

方法2.フィードURLにパラメータを付与する

https://tonari-it.com/feed?d=1

毎日最新の情報を取得する場合

第1引数に指定するフィードURLを、任意のセルに用意しておきましょう。TODAY関数と結合して、フィードのパラメータに日付を含めます。

importfeed2-9

 

TODAY関数と結合したフィードURLを引数に指定します。TODAY関数の結果が毎日変わるので、パラメータが再作成され、毎日最新の情報を取得できるという仕組みです。

importfeed2-10

 

これらの方法が不要なWebサイトもありますので、もし、最新アイテムが取得できないときは、「こんな方法もあるんだな」と頭にいれておく程度で大丈夫です。

まとめ

今回の記事では、GoogleスプレッドシートのIMPORTFEED関数の使い方を紹介しました。

  • フィード・アイテムの情報を取得する
  • 列見出しの有無を指定する
  • 取得アイテム数を指定する
  • 最新アイテムが取得できない場合の対処法

次回は「IMPORTFEED関数の実践編」をお届けします。コミュニティメンバーのブログの最新記事を取得して、一覧にまとめる方法をお伝えします。

IMPORTFEED関数でブログの更新情報をスプレッドシートに一覧化する
GoogleスプレッドシートのIMPORTFEED関数の使い方を紹介するシリーズ。今回は、指定のWebサイトの「最新の記事タイトル・記事URL・投稿日」を取得して、スプレッドシートに一覧化します。

 

連載目次:IMPORTFEED関数でブログ情報を取得する

GoogleスプレッドシートのIMPORTFEED関数を使って、ブログ更新情報の一覧を作る方法を紹介しています。

  1. Webサイトの新着記事をいち早く取得!RSSフィードのURLを確認する方法
  2. GoogleスプレッドシートでWebデータを取得するIMPORTFEED関数の使い方
  3. IMPORTFEED関数でブログの更新情報をスプレッドシートに一覧化する

  投稿者プロフィール

もり
もりシステムエンジニア・Webライター
「ラクするために全力を尽くす」をモットーに日々勉強。退屈なことはプログラミングで片づけよう。
事務作業をとことんラクにできるITネタを発信していきます。

お気軽にフォローしてくださいね!

もりの詳しいプロフィールはこちら
▽▽▽

コメント

タイトルとURLをコピーしました