daimac64's blog

50代からのWEBアプリ開発とその他もろもろの備忘録

VBAでスクレイピング

ほしいサービスがいくつかある。今のところ、ネット上には見当たらない。それをWebサービスにするとほかの人にも便利なのでは?と思ったりする。Webを学ぶにあたって何かテーマがほしいのでそのサービスを作ることにする。そのサービスに必要な技術は、「スクレイピング」というらしい。

とりあえず、仕組みを理解するために、VBAでやってみる。

使用するライブラリ

  • Microsoft Internet Controls」            IE(InternetExplorer)制御
  • Microsoft HTML Object Library」     HTTPリスクエスト、HTMLパーサ

あとはパースと文字列処理

KING OF SQUID - JAPANESE SECTION

XPathを取得して、スクレイピングに利用すると便利。お試しで作ったときはめんどくさいことしてたというかあてずっぽだったなぁ。

Chromeの場合、WEBページ上の解析したいオブジェクトを選択して右クリックで検証を選択する。ブラウザの開発者向けツール(F12)が開いて、DOMの相当部分が選択された状態になる。この選択部分をさらに右クリックして、Copy→Copy XPathで取得可能でした。

意外と簡単にできる。でもいろんなサイトからコンテンツを集めくると、VBAではゲキ重。ザンネン!

参考書はこちら。  

データを集める技術 最速で作るスクレイピング&クローラー (Informatics&IDEA)

データを集める技術 最速で作るスクレイピング&クローラー (Informatics&IDEA)