見出し画像

誰でも簡単にwebスクレイピングができる

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

誰でも簡単にwebスクレイピングができる方法をご紹介します。

googleスプレッドシートを使用しますので、ご準備ください!


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

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

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

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

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

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

 

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

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

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

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

その中でも、今回はスプレッドシートにしかないIMPORTXML関数を使用して、webスクレイピングを行います!

 

IMPORTXML関数の使用方法

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

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

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

スクリーンショット 2021-05-05 21.01.00

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

スクリーンショット 2021-05-05 21.22.11

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

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

スクリーンショット 2021-05-05 21.43.02

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

スクリーンショット 2021-05-05 21.46.45

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

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

スクリーンショット 2021-05-05 21.50.06

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

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

スクリーンショット 2021-05-06 18.47.16

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

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

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

ダブルクォーテーションが重複するとエラーが起きてしまいます。 

それでは実行します。

スクリーンショット 2021-05-06 19.00.27

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

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

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

 

-IMPORTXML関数-実践編


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

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

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

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

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

スクリーンショット 2021-05-06 19.25.51

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

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

スクリーンショット 2021-05-06 19.32.42

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

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

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

スクリーンショット 2021-05-06 19.36.02

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

スクリーンショット 2021-05-06 19.37.39

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

スクリーンショット 2021-05-06 19.41.57

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

 

まとめ


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

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

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

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


私はメーカー営業を行いながら、エクセルマクロというプログラミングで業務の効率化を行なっております。

皆さんが困っているエクセル業務や自動化したい作業があれば実装しますので、ご興味のある方はご覧ください!

マクロでできることの紹介動画はこちら

https://youtu.be/LnruF0l3bfU



この記事が気に入ったらサポートをしてみませんか?