このページで紹介するメソッド
Webスクレイピングでは、ブラウザの読み込み待ち時間を考慮してマクロの動作を遅延させる必要があります。これまでIEでのスクレイピングをされていた方にとっては読み込み待ちの処理をページごとに考えないといけないというのはストレスだと思いますが、本家「SeleniumBasic」でも状況は変わらないので、GoogleChrome(以下chrome)でスクレイピングをしたいという場合、慣れるしかありません。
事前準備(LesserScraping)
chromeのプロファイルを作成済、かつ「LesserScraping」というクラスが用意されていることを前提に解説をすすめますが、何を言っているかわからないよという方は、まず初回記事を読んでください。
引数
■millisecond
⇒停止したい時間をミリ秒(1000ミリ秒=1秒)で指定します。
サンプルコード(クリックでコピー)
Private Sub Test_LesserScraping_Wait()
Dim Driver As LesserScraping: Set Driver = New LesserScraping
Call Driver.Start
Call Driver.Wait(5000)
Call Driver.NavigateTo("https://funcref.com/lesserscraping", 0)
Set Driver = Nothing
End Sub
「Wait」の使いどころ
ページ遷移、クリック、テキスト入力・取得などの各メソッドには待ち時間設定オプションを用意しているため、明示的に「Wait」メソッドを呼び出す必要はありません。各メソッドに組み込まれているため、強いて単独での使いどころを挙げるほどでもないメソッドです。ただしIEユーザー向けに1点注意事項があります。冒頭でもふれたように、IEの読み込み待ちはIEの「読み込み待ち状態」が自動判定され、読み込み待ちを意識する必要はほとんどなかったと思います。しかし「LesserScraping」ではchromeの「読み込み待ち状態」を取得する手段がないため、ページの遷移判定や、待ち時間を開発者が各ページごとに考える必要があります。このあたりはIE⇒chromeへ乗り換えた人たちが文化の差を強く感じる部分かと思いますが、慣れてください。
【結果】マクロの動作を一時停止させることができました
サンプルコードを実行するとchromeが立ち上がってから5秒停止したのち、当サイトの「LesserScraping」の紹介ページへ遷移します。非常に意味のない動作ですが、一時停止の感覚はつかんでいただけるものかと思います。
業務用PCでスクレイピングするなら「LesserScraping」
業務用PCでExcelVBA(マクロ)からWebスクレイピングをしようとすると「Selenium Basic」の導入でつまずく方は多いです。当サイトでは劣化版Selenium Basicと呼べる「Lesser Scraping」を開発し無償で公開しています。
Comment