インターネットでデータを掘り下げていくと、考古学者になったような気分になります。比喩的に言えば、片手につるはし、もう片方の手にほこり取りブラシを持ち、各項目を慎重に発掘して、確認のために Google スプレッドシートに配置します。これにより、ミイラの再現の夢1999実現できますが、欠点が 1 つだけあります。
名前、住所、タイトルタグなどの基本データを手動でウェブサイトから探す代わりに、GoogleスプレッドシートのIMPORTXML機能をタップして、すべての慎重な調査作業を自動化し、シームレス(ほぼ魔法のような)データ転送を行うことができます。
Google スプレッドシートで IMPORTXML を使用して、手動によるデータ収集を過去のものにする方法を説明します。
目次:
Google スプレッドシートの IMPORTXML Functionとは何ですか?
IMPORTXML 関数は、構造化されたウェブデータをスプレッドシートに直接インポートできるGoogle スプレッドシートのツールです。関数は =IMPORTXML(url, "xpath")
です。本当に必要なのは、探しているデータがどこに含まれているかを知ることだけです。その後、Web ページから抽出するデータを指定するターゲット URL と XPath クエリをそのコア関数に入力できます。
もしそれがすべてクリンゴン語のように聞こえたとしても、あなたはまだこの中にいると約束します。IMPORTXML を使用するには、基本的な XML と HTML を理解している必要がありますが、ここでそれについて説明します。私が理解できれば、皆さんも理解できるはずです。
IMPORTXML を使用するために理解する必要がある用語をいくつか示します。
HTML:ブラウザに情報の表示方法を指示する基本的なマークアップ言語。HTML 要素は、開始タグ、コンテンツ、終了タグで構成されます。
例:
<p>何か</p>
XML:データ管理用のマークアップ言語とファイル形式。HTML に似ていますが、独自のタグを定義します。
例:
<name>ジョン</name>
タグ: HTML と XML の両方において、タグは要素の開始と終了を示すために使用されるマークアップです。タグは山括弧で囲まれています。
例:
<tag></tag>
XPath です。 XML をナビゲートし、パスを指定するために使用される式。これは、ウェブページ上のどの場所からデータを取得するかを Sheets に指示する方法です。
例(太字):
=importxml("https://en.wikipedia.org/wiki/List_of_T_postal_codes_of_Canada"、
"//td"
)
GoogleスプレッドシートでIMPORTXML関数を使う方法
まず、これを行う方法の非常に高レベルの概要を説明します。次に、これをさらに理解しやすくする例を示し、IMPORTXML の本当にエキサイティングな可能性 (Web データに興味のある方向け) をいくつか紹介します。
Web ページを見つけます。 インポートするデータが含まれているウェブサイトに移動します。
要素を検査します。Web ページの空白部分を右クリックし、 [検査]をクリックして、Web ページの HTML 構造を調べます。
タグを識別する:テーブル データ セルの
<td>
など、必要なデータを含むタグを見つけます。IMPORTXML式を入力します。 Google スプレッドシートのセルに、関数
=IMPORTXML(url, "xpath")
を入力します。urlの代わりに URL を使用して IMPORTXML 関数を更新します。引用符で囲まれた xpath を 2 つのスラッシュに置き換え、その後に識別したタグが続きます。データをカスタマイズします。テーブルから特定の要素のみを抽出し、データをフィルターして、残りのデータセットをクリーンアップします。
これにより、入力した URL から識別したタグ間のデータがシートに入力されます。
外部ウェブサイトへのアクセスを許可するように求められる場合があります。その場合は、クリックしてください。
IMPORTXML を使用して Google スプレッドシートにデータをインポートする例
ウィキペディアの表は IMPORTXML を実践するのに最適な方法なので、ウィキペディアから郵便番号と市区のリストを抽出する例を見てみましょう。さらに、より具体的なデータを取得する方法についても説明します。これにより、結果をどのように操作して、必要なものだけを取得するかがわかります。
1。インポートしたいデータを見つける
この演習では、 アルバータ州エドモントンのすべての郵便番号を取得します。手順に従いたい場合は、新しいブラウザ ウィンドウでそのページを開いてください。
2。ウェブページのHTMLを検査する
ページ上の郵便番号セルを右クリックし、 「検査」を選択して、ブラウザで HTML ソース コードを表示します。

3。タグを特定する
問題のデータが格納されているタグ(この場合は<td>
)を確認します。これは、セル内のすべてのデータを格納するタグです。
<b>
と読み取れるコードを見ている場合は、間違った場所にいます - これはテキスト自体の書式設定コードです。テーブル内のすべてのデータを取得するため、タグ<td>
、つまりテーブルデータが必要になります。「検査」メニュー内の検索機能を使用して、引き出したい領域を正確に特定できます。

4。IMPORTXML 関数を入力します
新しい Google スプレッドシートに、すべての郵便番号をインポートします。これを行うには、セルを選択して次の数式を入力します。
=IMPORTXML("https://en.wikipedia.org/wiki/List_of_T_postal_codes_of_Canada"、"//td")
念のため、これは関数=IMPORTXML(url, "xpath")
ですが、 url をWeb ページの URL に置き換え、 xpath を2 つのスラッシュとタグに置き換えています。
プロンプトが表示されたら、 「アクセスを許可」をクリックします (インポート元のサイトを信頼していると仮定します)。これにより、元の Wikipedia ページのすべての郵便番号( <td>
タグ内に保持されているすべてのデータ)が入力されます。

5。データをカスタマイズする
これまで HTML を一度も見たことがない場合、このセクションは少し怖いかもしれませんが、次のステップに従えば大丈夫です。
主要都市のみを抽出する
郵便番号に関連付けられている主要都市のみを取得したい場合はどうすればよいでしょうか?最初のクエリでは、多くの追加データが取得されました。
To narrow the scope, we can change the XPath query to "//td/span/a[1]"
. This will just pull the city linked to each postal code into our sheet—because we're specifying that we want to look within those table data cells for a "span" tag that contains an <a>
(anchor) tag, which is where the city names are found in the HTML.

郵便番号のみを抽出する
郵便番号自体を抽出することもできます。そのためには、このXPathクエリを"//td/b[ 1 ]"
に更新します。
<b>
<td>
ここで、HTML ソースを調べると、郵便番号が各 テーブル セル内の最初の タグ内に囲まれていることがわかるため /b[1 ] 郵便番号のみを対象としていることがわかります。

エドモントンのフィルター
アルバータ州エドモントンの郵便番号を見つけるには、さらに具体的なクエリを使用します。
XPath クエリを "//td[span/a='Edmonton']/b[1]"
に変更します。これにより、 td/span/a[1]
フィールドに「エドモントン」を含む郵便番号のみが返されます (ページ コードに都市名が格納されていることが確認できるため)。

近傍名の抽出
次に、これに基づいて、近隣の名前を抽出し、郵便番号の横の列に配置します。"Edmonton" に続く近隣名を取得するには、次の XPath クエリを使用します: "//td[span/a='Edmonton']/span[1]"
。

ご覧のとおり、これは突然大量のデータになります。この関数は、span[1]のコンテンツ全体を取得し、括弧とスラッシュを使用して分割し、「Edmonton」を最初の列に、各地区名を次の列に連結します。
データセットをクリーンアップする
ここから、郵便番号、市区町村、地区の列にデータを再編成して整理することができます。これにより、エドモントンの近隣名が必要な限り、ほとんどすべてのものに使用できる鮮明なデータセットが得られます。
問題のデータが列 B から列 J にまたがっている場合、SPLIT 関数と CONCATENATE 関数を使用できます: =SPLIT(concatenate(B 2 :J 2 ),"(/)")
。
スクロールして、この関数を数列上または数行下に使用してください。クリーンアップして余分なスペースや句読点を削除するすべてのデータに対してこれを実行できます。

以上が、エドモントンの郵便番号と市区のリストです。
関連するGoogleスプレッドシート関数
Google スプレッドシートの関数は「ミイラ」レベルのクールさで、他にもたくさんの機能があります。ここでは、IMPORTXML と同様に機能し、1 つのソースからシートにデータをインポートするために使用できる関数をいくつか紹介します。
次の関連機能のいずれかを使用して、新しいXPathの翼を伸ばします。
IMPORTHTML: Web ページ上の HTML テーブルまたはリストからデータをインポートします。(先ほど行ったことと非常に似ていますが、HTML テーブル全体を対象としています。)
インポート範囲:ある Google スプレッドシートのスプレッドシートから別のスプレッドシートにセルの範囲をインポートします。(スプレッドシートのデータの結合が簡単になります。)
IMPORTDATA: Web URL でホストされている CSV または TSV ファイルからデータをインポートします。
IMPORTFEED: RSS フィードからコンテンツをインポートします。スプレッドシートにライブ フィードを作成する場合のニュース サイトに最適です。
GOOGLEFINANCE: Google Finance から現在の金融市場データや過去の金融市場データを直接インポートします。
IMPORTXML のヒント
ここまで来た方は、おそらくすでに認定された Sheets ウィザードであり、私のアドバイスはもう必要ありません。ただし、念のため、IMPORTXML などの関数を操作するためのベスト プラクティスをいくつか紹介します。
検査機能を使用する:データを取得する前に、 Web ブラウザの「要素の検査」を使用してページの HTML 構造を表示します。インポートする Web ページ要素を右クリックし、ブラウザ メニューから[検査]を選択します。これにより、含まれているすべてのタグを確認できるため、クエリをより具体的にするのに役立つ可能性があります。
URL を再確認してください: IMPORTXML 式の URL が、スラッグやその大部分だけではなく、URL 全体であることを常に確認してください。はい、これには
http://
またはhttps://
プレフィックスが含まれます。(私がこれを何度台無しにしたかについては話しません。具体的にする:クエリで非常に具体的なデータをターゲティング戦略することは、通常、膨大なデータ範囲を取得するよりも効果的です。正確なクエリを使用して、必要なデータだけを正確に取得します。
テスト シートを使用する:最初は失敗する可能性があるので、IMPORTXML 関数を実装する前にテストするために別の Google スプレッドシートを設定することを好みます。これにより、すべての非常に重要なデータを含む実際のスプレッドシートにクエリを追加する前に、クエリが正しく機能していることを確認できます。
ZapierでGoogleスプレッドシートを自動化する
IMPORTXML 関数は、世界中のデータ愛好家にとっての贈り物です。これにより、少なくとも Web 上での手動によるデータ収集が過去のものとなり、美しいスプレッドシートを鑑賞する時間を増やすことができます。
それでもまだ不十分な場合は、 Zapier の Google Sheets インテグレーションを検討してみてください。Zapier を使用すると、スプレッドシートを何千もの他のアプリに接続して、フォーム、イベント、その他データが存在するあらゆる場所からのインポートを自動化できます。Google スプレッドシートを自動化する方法について詳しくは、こちらを参照してください。また、あらかじめ用意されたテンプレートもいくつかご覧ください。
Zapier は、Google、Salesforce、Microsoft などのパートナーの何千ものアプリと統合できる、最も接続性の高い AI オーケストレーション プラットフォームです。インターフェース、データ テーブル、ロジックを使用して、組織のテクノロジー スタック全体にわたるビジネス クリティカルなワークフロー向けに、安全で自動化されたAI搭載システムを構築します。もっと詳しく知る。
IMPORTXML に関するよくある質問
Google スプレッドシートの IMPORTXML の代替手段は何ですか?
IMPORTXMLの代替手段を探している場合は、同様の関数であるIMPORTHTMLを使用できます。IMPORTXML よりも精度が低く、主にテーブルまたはリストに使用されます。より大規模なWebスクレイピングが目的の場合は、サードパーティ製のツールを使用することも、独自のスクリプトを作成することもできます。
Google スプレッドシートで IMPORTXML を更新するにはどうすればよいですか?
Sheets で IMPORTXML を更新するには、関数を含む任意のセルをクリックし、Enter キーまたは Return キーを押します。これにより、数式が手動で再計算され、データが更新されます。数式を変更するたびにデータも更新されます。また、シートを自動的に更新するアドオンやカスタム スクリプトを使用することもできます。
IMPORTXMLはどのくらいの頻度で更新されますか?
好きなだけ。IMPORTXML 関数は自動的に更新されませんが、いつでも簡単に更新をトリガーできます。更新トリガーには、関数を含むセルで Enter キーまたは Return キーを押すこと、近くにある他のセルを編集すること、または数式を変更することが含まれます。関数は、 NOW()
などの動的要素が含まれている場合にも、それらの要素が自動的に更新されるため、更新される可能性があります。
関連資料:
この記事はもともと 2017年に Allana Mayer によって公開されました。最新のアップデートは 2024年11月。