こんにちは、おかちゃんせんせいです!
みなさんはWebスクレイピングという言葉をご存知でしょうか?
今回は業務効率化のためのアプローチとして、自動処理をテーマにお届けします!
- Webサイト上で定期的に繰り返し同じ作業をすることが負担に感じている方
- WebサイトのデータをExcelに転記する作業が多い方
- Excel VBAを使って業務効率化をしたいと考えている方
目次
そもそもスクレイピングとは?
ウェブサイトから情報を抽出するコンピュータソフトウェア技術のこと。
ウィキペディアより引用
例えば、Chromeブラウザを立ち上げ、自分が必要な情報が載っているWebサイトにアクセス。そこで必要な情報をコピペして、Excelに貼り付けるとします。
一回だけの作業なら特に支障はないかと思いますが、取得したいデータがたくさんあり、何度も同じことを繰り返し手作業でやるのって、かなり負担がかかりませんか?
そういった手作業を自動化して、Webサイトから必要なデータを抽出・分析・処理などをする技術がスクレイピングです。
以前は某大手ECサイトの自社サイトをメンテナンスするためや、マーケティングのための顧客情報収集のためなどに活用したことがあります。
スクレイピングの手段
いくつかスクレイピングの手段はありますので、その一部をご紹介します。
Excel VBA | ブラウザ拡張機能 | スクレイピングツール | Python | RPA | |
---|---|---|---|---|---|
実行媒体 | Excel | Firefox, Chrome | Octoparseなど | プログラムの入力用ソフトウェア | Robo Pat, WinActorなど |
コード入力 の有無 | ○ | ○ | △ | ○ | △ |
プログラム 言語 | VBA | JavaScript | – | Python | – |
費用 | 無料 | 無料 | 無料〜 | 無料 | 有料 |
開発難易度 | ★★ | ★★★ | ★ | ★★ | ★★ |
用途や開発スキル、予算などによって選択する方法は変わります。
上記方法の中で、現在唯一Python(パイソン)のみ試したことがありませんが、Webサイトを見ながら学習できそうなので、近日中にこちらの方法も試してみるつもりです。
各方法について、それぞれ一長一短あります。
プログラム言語が必要な方法は難易度こそ高いですが、予算をかけず、できる選択肢の幅はグッと増えます。
それに対して、Octoparseなどのスクレイピングツールや、Robo PatなどのRPAはノーコードで開発できると謳っていますが、やりたいことを実現するためには、結局プログラミングの考え方やJavaScriptが必要になる場面が多かったです。
なので、自分がやりたいことを実現したいことを整理して、最適な方法を決めると良いでしょう。
今回は、ぼくが依頼を受けている内容を実現するために選んだ方法『Excel VBA』について、記事を整理しますね。
Excel VBAを選んだ理由は?
今回依頼人から受けた要件は、下記の通りです。
・Webサイトにあるデータについて、Excelに転記する作業を自動化してほしい。
・転記作業は毎月実施する予定で、Excelデータはどんどん蓄積してほしい。
・重複するデータは転記しないでおく。
上記要件からすると、Excel VBA以外にもブラウザ拡張機能やRPAでも開発可能ですが、Excel VBAを選択した理由はいくつかあります。
まずは、ブラウザ拡張機能やRPAでの開発をした場合、ぼくに依存する可能性が高くなるため。
例えば、ブラウザ拡張機能には『iMacros』という自動化できるものがありますが、VBAやPythonなどと比べるとネット情報量は圧倒的には少ないです。
RPAであれば開発元や代理店に質問すれば、わからないことがあったときに答えてもらえます。けれど、基本スタンスは自分で開発する必要があり、ブラウザ拡張機能以上にネット情報量は少ない可能性があります。
となると、すべて開発はぼくに任されるわけですが、いつまでも依存関係を続けるつもりはぼくにはありません。
とはいえ、ほったらかしにするのも性に合わないので、一番自己メンテナンス・解決できる手段の多い選択肢として、『Excel VBA』を選択しました。
あとは、ただExcelにデータを抽出するだけなら、iMacrosやPythonでもいいですが、Excelでデータ蓄積をする予定でした。
なので、できればあまり複数のシステムを使いたくなかったのも、『Excel VBA』を選択した理由の一つです。
(追記:2024年6月4日)
ただ、どんな方法を選ぶにしても、どんなWebサイトでもスクレイピングをしてもいいわけではありません。
スクレイピングを禁止しているサイトがあったり、禁止はしなくても注意した方がよいことがいくつかあります。
下記サイトに詳しくまとめられているため、必ず参考の上自己責任の範囲内での実施を心がけましょう。
利用するブラウザは『Internet Explorer』?
依頼があったのは、半年前の2021年12月初旬。
最初依頼者からは「『Internet Explorer』で開発してみてはどうか?」と提案がありました。
けれど、Internet Explorerはサポート期限が迫っていることは前々から言われていましたので、了承するのは渋っていました。
実際に、昨日6月16日の時点でInternet Explorerが起動不可になっているかと思いますので、Excel VBAでWebスクレイピングするにはChromeを活用することになると思います。
ぼくがVBAを独学で学んだ11年前にVBAを使ったスクレイピングと言えば、利用するブラウザはInternet Explorerの一択。
けれど、改めてネット検索をしてみたところ、Seleniumを用いたChromeでWebスクレイピングができることを知り、ChromeでWebスクレイピングできるようにExcel VBAを活用することを決め、依頼を受諾した経緯があります。
では、次のページではExcelでWebスクレイピングするために必要な初期設定について、手順や注意点についての情報になります。