スクレイピングとは?
ウェブスクレイピング。ウェブサイトのHTMLから欲しい情報を指定して取得すること。
簡単に言うと手作業でウェブサイトからExcelにデータをコピペコピペコピペ・・・という地獄の作業を自動化してしまおうというものです。最近流行りの業務の自動化という考え方 RPA(Robotic Process Automation)にも通ずる というかRPAツール使わなくてもVBAでRPAできるってこと。
そもそもプログラム勉強するの嫌だけど仕事は自動化したいという人のために作られたのがRPAツールなので、プログラム勉強するモチベーションがある人は、是非とも仕事を自動化するプログラムを作ることに全力を注いでほしいです。(ただし、自分以外の仕事を自動化するという場合はメンテナンスが問題になるのでそこはご注意ください
さて、本連載ではmarumoの得意分野をさらに磨くべく、ExcelVBAでここまでできるんだぞと布教するべく、検索順位チェックツールのようなものを作っていきます。今回はデータ取得が主ですが、リンクをクリックするメソッドなどもあるのでWEBベースのシステムを使った業務であれば応用次第で割と簡単に業務自動化を実現できるかもしれませんね。
API使えや・・・という意見もあるかと思いますが、やっぱりブラウザ経由のスクレイピングは汎用性が高くて便利。あとJSONのパースとかしなくていい。APIキー取得しなくていい。APIで提供されていない項目も取得できる。 などの理由もあり今回はわかりやすい題材として検索順位を取得対象にしています。
APIでのデータ取得もそのうちやりたいな。楽天市場の検索APIとかね。
- スクレイピングとは?
- この連載記事でできるようになること
- もしかしたら、おまけでやるかもしれないやーつ
- 設計~Google検索するまで
- やりたいことと処理の流れをイメージ
- 処理フロー概要
- VBAで書いていくよ
- VBE(VBAを書くやつ)を起動してModule1を作成
- ブックをxlsm形式で保存
- 前準備(参照設定)
- Internet ExplorerでGoogleを開く
- Internet Explorerを閉じる
- 「待つ」処理を追加する
- sleepメソッドで3秒待つ
- Waitメソッドで3秒待つ
- まとめ
- やりたいことと処理の流れをイメージ
この連載記事でできるようになること
- 指定したキーワードでGoogleの検索順位を一括取得
- 次のページへのリンクをクリックしてページ移動しながら取得
- スクレイピングに便利なCSSセレクタを知る
- Seleniumの使いどころを知る
もしかしたら、おまけでやるかもしれないやーつ
- 指定文字列を含むリンクタグを取得するFunction
- JavaScriptを実行させる方法
- 要素取得のリトライ処理(Seleniumみたいな使い勝手にしたい)
設計~Google検索するまで
第一回目では「Googleで検索する」ところまでをやっていきたいと思います。
一気に記事書くと説明が雑になりそう、後半力尽きて雑になりそう、飽きてきて雑になりそうなどの理由です。楽しくなってくるのは第二回目でシートに情報を書き込んで行くところからかなーと思います。
続きを読む