excel room

事務作業で役に立つエクセル関数などを解説します。

Googleスプレッドシートでwebスクレイピングする方法

今回はプログラミングのスキルがなくても、

誰でも簡単にwebスクレイピングができるとても便利な関数を紹介します。

 

目次

 

 

webスクレイピングのメリット

webスクレイピングとは、ウェブサイトから情報を取得することです。

webスクレイピングのメリットは、手動で特定の情報を収集するよりも、

正確かつ素早く、大量に情報を取得することができることです。

実際にどのくらい効率的に情報を取得できるかを実感していただくために、

後半で実例をご紹介します!

 

 

Googleスプレッドシートとは?

Googleスプレッドシートとは、Google版のエクセルのようなもので、

Microsoftとは違い、誰でも無料で使用できるというメリットがあります。

また、Googleアカウントを持っていれば、いつでもどこでもファイルを編集できるので、使い方次第ではエクセルよりも利便性があります!

その中でも、今回はスプレッドシートにしかないIMPORTXML関数を使用して、

webスクレイピングを行います!

IMPORTXML関数の使用方法

IMPORTXML関数とは、指定したURLから、指定したXPathクエリを取得する関数です。

XPathクエリとは、その文字が書かれている住所のようなもので、

簡単に取得できますので、後ほどご紹介します。

 

f:id:omulife:20210505210134p:plain

 

例として、下のウェブサイトから、赤枠の日付をスクレイピングしてみます。

f:id:omulife:20210505212646p:plain

引数1のURLは上のhttps://.....をそのまま入力します。 

次に、XPathクエリを取得する方法を説明します。

f:id:omulife:20210505214523p:plain

 

取得したい部分を選択し、右クリック→検証を押します。

f:id:omulife:20210505214756p:plain

 

画面右に英語のコードが出てきます。

コードにカーソルを合わせると、取得したい場所がこのように青くなります。 

f:id:omulife:20210505215125p:plain

右クリック→「Copy」→「Copy XPath」を押すと、XPathが取得できます。

XPathが取得できたので、実際に関数に入力してみましょう。

f:id:omulife:20210506185702p:plain

 

ここで、2点注意すべきポイントがあります。

1つ目は、URL、XPath共に、ダブルクォーテーションで囲うことを忘れないでください!

2つ目は、XPathの中にダブルクォーテーションがあれば、青枠のように、シングルクォーテーションに変更してください! 

ダブルクォーテーションが重複するとエラーが起きますので、注意しましょう。

 

 

それでは実行します。

f:id:omulife:20210506190106p:plain

欲しかった日付を 取得することができました。

これだけ手間がかかるなら、最初からコピペの方が早いのではと感じた方もいると思います。

なので、以下では実際に大量のデータを素早く取得する実践編をご紹介します。

 

-IMPORTXML関数-実践編

https://haitoh-db.com/category/construction/

 この実践では、上サイトに記載されている全ての企業から、

前章の例で取得した権利確定日をスクレイピングしたいと思います。

企業数は全部で124社なので、手作業でコピーしていくには大変な量です。

 

まずは、企業一覧、URL、XPathを表にまとめます。 

f:id:omulife:20210506192733p:plain

 

ここで、ある法則が見つかります。URLの後ろ部分が証券コードになっています!

したがって、URLは、https://haitoh-db.com/construction/  + 証券コード  + / となります!

f:id:omulife:20210506193329p:plain

引数内では「&」を使用すれば文字同士が連結しますので、

URLは上のように表すことができます。

XPathはE3セルを指定すると、

f:id:omulife:20210506193637p:plain

権利確定日を取得することができました!

 

f:id:omulife:20210506194017p:plain

 

あとは引数に$マークを付けて絶対参照とし、オートフィルをすると、

f:id:omulife:20210506194237p:plain

 

一瞬にして日付を取得できます!!

 

まとめ

以上のようにスプレッドシートでは、誰でも簡単にスクレイピングをすることができます。

ただし、データの量が多いとスムーズに動かないといったデメリットもあります。

データを取得したいが、プログラミングを学習したことがない方や、

仕事の業務で一つづつデータを取っていた方はぜひ試してみてください!

 

 

エクセルの事務作業を圧倒的に効率化したい方、エクセルの単純作業に時間をかけたくない方はこちらからご相談ください!

excelの自動化や効率化、便利屋になります 関数やマクロを使用し、Excelの作業を大幅に効率化します! | Excelマクロ作成・VBA開発 | ココナラ

 

coconala.com