Webサイト上のデータを表やリストにまとめる際に、手作業でコピー&ペーストをしていませんか。こうした手作業はデータ量が少ないときには最も手軽な方法かもしれません。しかし、データ量が多ければ多いほど、時間と手間が掛かるため非常に面倒な作業になります。
もしプログラミングの知識・技術があれば、Pythonなどを使ったWebスクレイピングで自動抽出できます。しかしプログラミングの知識がない方は、Web上のデータを効率的に取得するには、どうすればよいのでしょうか。
そこで本記事では、誰でも簡単に使えるWebデータの取得方法を2つ紹介します。
1.Googleスプレッドシートでデータ入力を自動化する方法
2.ノーコードツールでデータをスクレイピングする方法
それぞれの手順をわかりやすく解説するので、早速試してみましょう!
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について詳しく知りたい方は、以下の記事もご覧ください。
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ページのテンプレートが豊富ですぐに利用できる
興味がある方はぜひ使ってみてください。
