VBAでIEを起動し任意のページまで遷移する方法をお伝えしました。
Webスクレイピングの本質、ホームページの情報を収集・抽出する方法をご説明します。
データ取得は4種類ある
プロパティ | 内容 |
innerText | 指定した要素のテキスト(指定タグを含まない) |
outerText | 指定した要素のテキスト(指定タグを含む) |
innerHTML | 指定した要素のHTMLを全て(指定タグを含まない) |
outerHTML | 指定した要素のHTMLを全て(指定タグを含む) |
画面表示されているテキストは、innerTextで取得
人間の目で確認が出来る内容(Webページの表示されている)をデータ取得したい場合は、
innerTextでデータを取得可能です。
'■サンプルコード '■ID属性nav-searchのテキストデータを取得 objIE.document.getElementById(“nav-search”).innerText '■Class属性testの1番目のテキストデータを取得 objIE.document.getElementsByClassName(“text”)(0).innerText
outerTextも設定としてはありますが、私はあまり使いません。
また、取得するデータは「innerText」 = 「outerText」だと考えています。
HTMLを解析するなら、innerHTML OuterHTML
データを取得する(クロールする)というよりも、
VBA上で、IEデータを解析して、IEの次ページに遷移する場合が多いかもしれません。
※onclick要素を探す場合によく使うイメージです。
InnerHTMLでもOuterHTMLでもどちらでも構いません。
(違いは指定したタグが含まれるかどうかだけです)
//HTMLサンプル <li>test</li>
'■VBAサンプルコード '■innerHTML→ test objIE.document.getElementByTAGName(“li”)(0).innerHTML '■outerHTML→ <li>test</li> objIE.document.getElementByTAGName(“li”)(0).outerHTML
その他
Internet Explorerを使用して、Webスクレイピングは敷居が高い風に捉えられますが、
上記のように、パーツ化して組み合わせ処理するだけです。
Web上のデータを触りたい要望は会社様でも個人様でも多いと思います。
VBA IE操作を覚えて効率化しませんか?
作成が大変であれば弊社で代行開発も可能です。お気軽にお問い合わせください。
コメント