GoogleスプレッドシートでWebデータを取得する

Webサイト上のデータを表やリストにまとめる際に、手作業でコピー&ペーストをしていませんか。こうした手作業はデータ量が少ないときには最も手軽な方法かもしれません。しかし、データ量が多ければ多いほど、時間と手間が掛かるため非常に面倒な作業になります。

もしプログラミングの知識・技術があれば、Pythonなどを使ったWebスクレイピングで自動抽出できます。しかしプログラミングの知識がない方は、Web上のデータを効率的に取得するには、どうすればよいのでしょうか。

そこで本記事では、誰でも簡単に使えるWebデータの取得方法を2つ紹介します。

  1. Googleスプレッドシートでデータ入力を自動化する方法
  2. ノーコードツールでデータをスクレイピングする方法

それぞれの手順をわかりやすく解説するので、早速試してみましょう!

目次

1.Webスクレイピングとは

2.Googleスプレッドシートでデータ入力を自動化する

3.ノーコードツールでデータをスクレイピングする 

Webスクレイピングとは

Webスクレイピングとは、Webサイトから特定の情報を自動的に抽出するコンピュータソフトウェア技術のことです。Webスクレイピングを使えば、インターネット上の特定のWebサイトやデータベースを探り、大量のデータの中から任意のデータだけを自動で抽出できます。

Webスクレイピングを行うためには、PythonやRubyなどのプログラミングによって、スクレイパーの作成が必要です。しかし、未経験からプログラミングを習得するのは容易ではありません。そこで役立つのが、スプレッドシートの関数や、Webスクレイピングツールの活用です。

Googleスプレッドシートでデータ入力を自動化する

ここでは、Googleスプレッドシートの「IMPORTXML関数」を活用した、簡単なWebクローラーを構築する手順を紹介します。データの取得先としては、データ収集サイト「Steam Spy」を利用します。 

ステップ1:新しいGoogleスプレッドシートを開きます。

ステップ2:Chromeブラウザで「Steam Spy」を開き、ページを右クリックして、メニューの中から「検証」を選択します。

するとソースコードが表示されるので、「矢印アイコン」(画面左下の赤枠)をクリックし、セレクタを有効にします。  

セレクタを有効にした状態で、必要な箇所にカーソルを置くと、対応する情報が「検証パネル」に表示されます。ここでは「PRICE」を選択します。

ステップ3:Steam SpyのURLをスプレッドシートに貼り付けます。ここではA2セルを指定します。

ステップ4:Xpathを取得する

今回は「IMPORTXML関数」を使って、価格データを自動で取得します。IMPORTXML関数とは、Webサイトから必要な情報を指定し、その情報をスプレッドシートに自動で出力できる関数のことです。

まず、要素となるXpath(エックスパス)をコピーします。Xpathとは、マークアップ言語XMLに準拠した文書から特定の部分を指定する言語のことです。Xpathについて詳しく知りたい方は、以下の記事もご覧ください。

参考:Webスクレイピングに不可欠!Xpathのまとめ

Xpathを取得するには、「価格情報 > Copy > Copy XPath」の順にクリックします。

スプレッドシートなどに貼付けてもらえば、「//*[@id="trendinggames"]/tbody/tr[1]/td[4]」というXpathが取得できていることがわかります。

次に、先程のスプレッドシート内(B2セル)にINPORTXML関数を入力します。

IMPORTXML関数の構文は以下の通りです。

=IMPORTXML(URL, XPathクエリ)

URLとXPathクエリを指定します。URLはA2列を指定し、カンマを入れて、Xpathを入力します。Xpathはダブルクォーテーション(”)で囲みます。その際、ダブルクォーテーション(”)がスプレッドシートの引数とぶつかってしまうため、「trendinggames」の部分だけシングルクォーテーション(’)に変更してください。

実際に入力する構文は以下の通りです。

=IMPORTXML(A2,"//*[@id='trendinggames']/tbody/tr[1]/td[4]")

これで無事、"$69.99" という文字列が取得できました。

テーブルの取得方法もあります。INPORTHTML関数は、HTML ページ内の表やリストからデータをインポートします。

構文は次の通りです。

=IMPORTHTML(URL, クエリ, 指数)

この式を使うと、テーブル全体を簡単に抽出できます。試しに、B2セルに以下の関数を入力してみてください。

=IMPORTHTML(A2,"table",1)

ノーコードツールでデータをスクレイピングする

次にWebスクレイピングツールのOctoparseを使って、同じ作業をどのように達成できるかを見てみましょう。

ステップ1:Octoparseでスクレイピングするサイトを開く

Octoparseを起動します。スクレイピングしたいWebページのURLを入力します。URLが検出されたら「抽出開始」 ボタンをクリックします。

ステップ2: Webページを識別する

画面が切り替わったら、操作ヒントのパネルから「Webページを自動識別する」をクリックします。すると、Webページの自動識別が始まるので、しばらく待ちましょう。

 自動識別とは、自動的にページ上の必要なデータを検出して識別するという役立つ機能です。ポイント&クリックをする必要はなく、Octoparseは自動的に処理します。

ステップ3:ワークフローを生成する

Webページの識別が完了すると、データプレビューで識別したデータが表示され、どのようなデータが取得されているか確認ができます。

抽出するデータに問題がなければ、「ワークフローを生成」のボタンをクリックして確認し、スクレイピングタスクを作成します。

ステップ4:タスクを実行する

ワークフローを確認して問題がなければ「実行」ボタンをクリックして、スクレイピングタスクを実行します。

次にタスク実行方法の選択画面が表示されるので、「ローカル抽出」または「クラウド抽出」のどちらかを選択します。クラウド抽出は有料版のみ利用可能です。

いずれかを選択すると、スクレイピング実行中の画面が表示されますので、完了するまでしばらく待ちましょう。

データの取得が完了しました。すごく簡単です!取得したデータは、xls、csvなどにエクスポートが可能です。

まとめ

今回は、WebページのデータをGoogleスプレッドシートで取得する方法と、Webスクレイピングで取得する方法をそれぞれ紹介しました。どちらの方法もPythonなどのプログラミングを使わずにかんたんにデータを取得できます。

ただし、近年ではWebページをスクレイピングできないように規制されていることも多く、IMPORTXML関数を使ったスクレイピングではデータを取得できない場合もあります。

その場合は、Webスクレイピングツールを使えば、Webスクレイピングを実行することができます。OctoparseではWebサイト側にスクレイピング と気づかれない機能が充実しています。

参考:スクレイピングテクニック - バレないようにする方法を解説

他にもスクレイピング未経験者がOctoparseを使うメリットはたくさんあります。

  • 無料で使えるFreeプランを提供している
  • ノーコード技術を使うためプログラミングの知識取得が不要
  • 人気Webページのテンプレートが豊富ですぐに利用できる

興味がある方はぜひ使ってみてください。

 

関連記事:

デキる人は知っている!Webスクレイピング用のソフト30選

WebサイトをスクレイピングするWebクローラー20選

Webスクレイピングするなら何言語?Python、Ruby、またはJavaScript?

WebサイトからデータをExcelに取り込む方法