Webページから特定の要素だけをスプレッドシートに取り込みたいと思ったことはありませんか。例えば、他サイトの見出しや表データを定期的に取得して分析したい場合、手動でコピーペーストするのは非効率です。GoogleスプレッドシートのIMPORTXML関数を使えば、HTML内の任意の要素をXPathで指定して直接抽出できます。この記事では、IMPORTXML関数を使ってh1タグや表データを取得する具体的な方法を解説します。
【要点】IMPORTXMLでh1や表を抽出する3つのポイント
- IMPORTXML関数の基本構文: =IMPORTXML(URL, XPath) で指定したURLのHTML要素を取得できます。XPathで抽出対象を正確に指定することが重要です。
- h1タグの抽出: XPathに “//h1” と指定することで、ページ内のすべてのh1見出しを取得します。複数ある場合は縦に並んで表示されます。
- 表データの抽出: XPathに “//table” や “//tr” などを組み合わせて、表全体や特定の行・列を取得できます。HTMLの構造を確認しながらXPathを調整します。
ADVERTISEMENT
目次
IMPORTXML関数でHTML要素を抽出する仕組み
IMPORTXML関数は、指定したURLのWebページに対してXPathクエリを実行し、マッチする要素のテキストや属性値をセルに取り込みます。IMPORTXMLはHTMLを解析するため、静的なページであればほぼ全ての要素を抽出できます。ただし、JavaScriptで動的に生成される要素には対応していません。その場合は別の方法を検討する必要があります。XPathの知識が少し必要ですが、基本的な構文は数パターン覚えれば十分です。
IMPORTXMLはIMPORTHTMLと似ていますが、IMPORTHTMLは表(
| 項目 | IMPORTXML | IMPORTHTML |
|---|---|---|
| 抽出可能な要素 | 任意のHTML要素(h1, div, tableなど) | 表(table)とリスト(ul/ol)のみ |
| 指定方法 | XPath(クエリ文字列) | クエリ種類とインデックス番号 |
| 学習コスト | 高い(XPathの理解が必要) | 低い(直感的な指定が可能) |
| 表データの整形 | 基本的に生のHTMLがそのまま返る | 自動的に行列に展開される |
用途に応じて使い分けると効率的です。例えば、表をきれいな形で取得したいならIMPORTHTML、見出しや特定のdiv内テキストを取得したいならIMPORTXMLを選択します。
まとめ
IMPORTXML関数を使うことで、Webページからh1タグや表データを直接スプレッドシートに取り込めるようになります。XPathの指定は最初は難しいかもしれませんが、基本的なパターン(//タグ名、属性指定)を覚えれば応用範囲が広がります。まずはサンプルサイトで試してみて、徐々に複雑な構造を扱ってみてください。また、IMPORTHTMLとの違いを理解して、状況に応じて最適な関数を選びましょう。
ADVERTISEMENT
超解決 第一編集部
疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。
Googleスプレッドシートの人気記事ランキング
- 【Googleスプレッドシート】フィルタ表示で他の人の表示を変えずに絞り込み!共有時の使い分け
- 【Googleスプレッドシート】行を一括追加!複数行をまとめて挿入
- 【Googleスプレッドシート】行・列の入れ替え!ドラッグ&ドロップでの並べ替え
- 【Googleスプレッドシート】共有相手が編集できない時のチェック!権限と許可状態の確認
- 【Googleスプレッドシート】GOOGLEFINANCE関数で株価・為替を取得!リアルタイムデータの呼び出し
- 【Googleスプレッドシート】セル内の画像サイズと位置を調整!アンカーと配置の指定
- 【Googleスプレッドシート】Apps Script V8ランタイムへの移行手順!古いコードの書き換え
- 【Googleスプレッドシート】2段階プルダウンを実装!連動式リストの作り方
- 【Googleスプレッドシート】テキストを折り返し・はみ出し・切り捨てに切替!セル内の表示設定
- 【Googleスプレッドシート】テンプレートギャラリーを使い倒すコツ!業務別の活用例
