このページで紹介するメソッド
テキストボックスにテキスト入力をすることはWebスクレイピングの基本です。このページではExcelVBA(マクロ)でWebページの指定した要素に対しGoogleChrome(以下chrome)でテキスト入力ができる「SetText」メソッドについて解説をします。
事前準備(LesserScraping)
chromeのプロファイルを作成済、かつ「LesserScraping」というクラスが用意されていることを前提に解説をすすめますが、何を言っているかわからないよという方は、まず初回記事を読んでください。
引数
■第1引数:text
⇒入力するテキストを文字列で指定します。
■第2引数:element_value_or_path
⇒要素を指定する文字列
■第3引数:element_type
⇒要素の指定方法
■第4引数:element_index
⇒要素が絞り込めない場合、先頭からの番号(1始まり)
■第5引数:over_write
⇒テキスト入力の際、もともと入力されている文字列を上書きするかどうかを指定します。指定しない場合「True(上書きする)」を指定したことになります。
■第6引数:wait_time_value
⇒処理後の待機時間をミリ秒で指定(1000ミリ秒⇒1秒)
要素(Element)の指定方法
第2~第4引数までの指定方法がわからないという方は、先にこちらの記事を読んでください。
サンプルコード(クリックでコピー)
Private Sub Test_LesserScraping_SetText()
Dim Driver As LesserScraping: Set Driver = New LesserScraping
Call Driver.Start
Call Driver.NavigateTo("https://funcref.com/", 1500)
Call Driver.MaximizeWindow
Call Driver.SetText("F0000100", "//*[@id=""search_word""]", lsXpath)
Call Driver.SendKey(lsEnter, "//*[@id=""search_word""]", lsXpath)
Set Driver = Nothing
End Sub
【結果】指定した要素へテキストを入力することができました
サンプルコードを実行すると当サイトのトップページ(関数リファレンス)が開き、検索ボックスに「F0000100」と入力します。関数リファレンスはjavascriptで動いており、検索ボックスにテキストを入力すると該当する関数を検索し、1つに絞れた場合、そのままコードを表示します。しかし、テキストを自動入力しただけではjavascriptは発火しないため、テキスト入力後に「Enter」キーを送信しています。
業務用PCでスクレイピングするなら「LesserScraping」
業務用PCでExcelVBA(マクロ)からWebスクレイピングをしようとすると「Selenium Basic」の導入でつまずく方は多いです。当サイトでは劣化版Selenium Basicと呼べる「Lesser Scraping」を開発し無償で公開しています。
Comment