Skip to content

Google Sheets の IMPORTXML および IMPORTHTML 関数を使用して Web データを抽出します。コーディングは不要です。スクレイピングを行い、データ収集を簡単に自動化できます。

Notifications You must be signed in to change notification settings

bright-jp/web-scraping-with-google-sheets

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 

Repository files navigation

Google SheetsでWebデータを抽出する

Bright Data Promo

コーディング経験がなくても、Google SheetsのIMPORTXMLおよびIMPORTHTML関数を活用して、Webサイトから価値あるデータを抽出する方法を学びます。

Google SheetsをWebスクレイピングに使うメリット

Google Sheetsは、プログラミング知識を必要とせずにデータ抽出を行える、驚くほど強力なソリューションを提供します。Webサイトから構造化データや表形式データを収集するのが得意で、収集した内容をすぐに分析・可視化できます。これにより、次のようなさまざまなユースケースに最適です。

  • ECプラットフォームでの商品の価格監視
  • オンラインディレクトリからの連絡先リスト作成
  • ソーシャルチャネル全体のエンゲージメント指標の追跡
  • マーケティング分析のための公開センチメントの収集

収集したデータは、CSVなどの形式に簡単にエクスポートして、既存システムと連携できます。

最初のスクレイピング用シートを作成する

開始するには、https://sheets.google.com に移動し、+ アイコンを選択して新しいスプレッドシートを作成します。

Google Sheets new document creation

Webスクレイピング技術の学習用に特別に設計されたデモサイトである、Books to Scrape を使用しましょう。

必須のGoogle Sheetsスクレイピング関数

Google Sheetsには、スプレッドシート内で直接データ抽出を可能にする強力な数式がいくつか用意されています。ここでは、Webスクレイピングに最も有用な2つの関数を見ていきます。

IMPORTXMLの使用

IMPORTXML 関数は、XPathセレクターを使用して構造化データをスプレッドシートへ取り込みます。XML、HTML、CSV、TSV形式に対応しており、次の構造に従います。

=IMPORTXML(url, xpath_query)

この関数は、XPath を使って特定の要素をターゲットにすることで、任意のWeb URLからデータを取得します。たとえば、デモサイトからメイン見出しを抽出するには、次の数式を入力します。

=IMPORTXML("https://books.toscrape.com/catalogue/category/books/default_15/index.html", "//h1")

この関数を初めて使用すると、Google Sheetsが外部サイトへ接続するための権限を求めます。

Google Sheets access permission dialog

Allow access をクリックすると、セルにはターゲットページのH1見出し内容である「Default」が表示されます。

IMPORTHTMLの使用

IMPORTHTML 関数は、次の形式でWebページからテーブルやリストを抽出することに特化しています。

=IMPORTHTML(url, query, index)

この関数は、query パラメータ("table" または "list")と、取得するテーブルまたはリストを指定する index 番号(1から開始)に基づいてデータを抽出します。たとえば、例のサイトから書籍一覧を抽出するには次のとおりです。

=IMPORTHTML("https://books.toscrape.com/catalogue/category/books/default_15/index.html", "list", 2)

この数式により、スプレッドシートに書籍リスト全体が入力されます。

Imported book list in Google Sheets

ステップバイステップのデータ抽出ガイド

基本を理解したところで、より構造化された抽出プロセスを作成していきます。IMPORTXMLを使用して、Books to Scrape Webサイトから書籍タイトル、価格、評価を取得します。

まず、適切な列見出しをスプレッドシートに設定します。

Google Sheets with column headers

書籍タイトルの正しいXPathを特定するには、ブラウザの開発者ツールを使用します。

  1. 最初の書籍タイトルを右クリックします
  2. Inspect を選択します
  3. ハイライトされたHTML要素を右クリックします
  4. Copy > XPath を選択します

Finding XPath using browser developer tools

単一の書籍タイトルに対する生のXPathは、次のようになります。

//*[@id="default"]/div/div/div/div/section/div[2]/ol/li[1]/article/h3/a

すべての書籍タイトルを抽出するには、このXPathを修正する必要があります。

  • すべてのリスト項目をターゲットにするために、li[1]li に置き換えます
  • タイトル属性全体を取得するために、aa/@title に変更します
  • XPath内のダブルクォートをシングルクォートに変換します

この最適化した数式をセルA2に入力します。

=IMPORTXML("https://books.toscrape.com/catalogue/category/books/default_15/index.html", "//*[@id='default']/div/div/div/div/section/div[2]/ol/li/article/h3/a/@title")

シートにはすべての書籍タイトルが入力されます。

Google Sheets showing imported book titles

次に、価格データの数式をセルB2に追加します。

=IMPORTXML("https://books.toscrape.com/catalogue/category/books/default_15/index.html", "//*[@id='default']/div/div/div/div/section/div[2]/ol/li/article/div[2]/p[1]")

最後に、セルC2で評価を取得します。

=IMPORTXML("https://books.toscrape.com/", "//*[@id='default']/div/div/div/div/section/div[2]/ol/li/article/p/@class")

完成したスプレッドシートには、3つのデータポイントがすべて表示されます。

Complete spreadsheet with book data

評価が star-rating Threestar-rating Four として表示される点に注意してください。残念ながら、Google SheetsはXPath 2.0をサポートしていないため、数式内でこのデータを直接変換できません。

制限事項と高度なシナリオ

Google Sheetsは基本的なスクレイピングには有効ですが、次の点で大きな制限があります。

Dynamic Content: Webサイトが初期レンダリング後にJavaScript経由でデータを読み込む場合、Google Sheetsの数式は静的HTMLのみを処理するため、このコンテンツを取得できません。動的サイトの場合は、ヘッドレスブラウザを使ったPythonスクリプトが必要です。

Pagination: Google Sheetsは複数ページを自動的に巡回できません。各ページごとにURLと数式を手動で更新する必要があり、すぐに非現実的になります。

Interactive Elements: データ表示前にクリック、スクロール、フォーム送信が必要なWebサイトは、Google Sheetsの機能範囲を超えています。

これらの高度なシナリオでは、プロキシ、CAPTCHA、ユーザーエージェントのローテーションを自動的に処理する、Bright Dataの包括的なスクレイピングソリューションを検討してください。

自動データ更新の設定

価格追跡や監視用途では、データを自動的に更新したいはずです。

Google Sheetsで更新頻度を設定するには、次の手順です。

  1. File > Settings をクリックします
  2. Calculation タブに移動します
  3. 希望する再計算間隔を設定します

Google Sheets settings menu

1分または1時間の更新間隔を選択できます。

Google Sheets recalculation settings

Google Sheetsではこの2つの更新オプションに制限されますが、Bright Dataのような専用スクレイピングソリューションでは、より柔軟なスケジューリングが可能で、複数形式(JSON、CSV、Parquet)でデータを提供できるため、エンタープライズ規模のデータ収集に最適です。

スクレイピングプロセスの最適化

スクレイピング効率を高め、潜在的な問題を減らすために、次の点を改善してください。

Be Selective: 必要なデータポイントだけを抽出し、ターゲットWebサイトへの不要な負荷を避けます。

Implement Delays: 大規模プロジェクトでは、リクエスト間に待機を入れ、オフピーク時間にスケジュールして、レート制限やIPブロックの発生を防ぎます。

Handle Anti-Scraping Measures: 多くのサイトは自動アクセスを検出するためにCAPTCHAチャレンジを使用しています。センシティブなスクレイピングタスクでは、自動IPローテーション付きプロキシの使用を検討してください。

Review Legal Requirements: スクレイピングの前に、Webサイトの利用規約と robots.txt ファイルを必ず確認してください。

次のステップ

Google Sheetsは、特に構造化データを持つ静的Webサイトに対して、Webスクレイピングの優れた入門手段を提供します。

動的コンテンツ、大量データ、または高度なアンチスクレイピング対策を伴うより複雑な要件には、Bright Data's Web Scraper API が、プロキシ、CAPTCHA、さまざまな出力形式の組み込み処理を備えたスケーラブルなソリューションを提供します。

今すぐ無料トライアルに登録して、データワークフローの最適化を始めましょう!

About

Google Sheets の IMPORTXML および IMPORTHTML 関数を使用して Web データを抽出します。コーディングは不要です。スクレイピングを行い、データ収集を簡単に自動化できます。

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published