このページで紹介するメソッド
他のスクレイピングツールと同様「LesserScraping」でも「XPath」や「id」「name」などで操作対象の要素(Element)を特定してから操作を実行します。「LesserScraping」での要素の特定方法は8つあります。このページではExcelVBA(マクロ)で指定した要素をGoogleChrome(以下chrome)でクリックする「Click」メソッドについて、XPathで要素を指定する方法とあわせて解説します。
事前準備(LesserScraping)
chromeのプロファイルを作成済、かつ「LesserScraping」というクラスが用意されていることを前提に解説をすすめますが、何を言っているかわからないよという方は、まず初回記事を読んでください。
引数
■第1引数:element_value_or_path
⇒文字列で「XPath」や「id」を渡します。
■第2引数:element_type
⇒「lsXPath」や「lsId」といった専用定数(列挙型変数)で指定します。「lsId:0」「lsName:1」「lsClassName:2」「lsXpath:3」「lsCssSelector:4」「lsLinkText:5」「lsParticalLinkText:6」「lsTagName:7」
■第3引数:element_index
⇒「name」や「ClassName」など、それだけでは要素を特定できない場合にインデックスを指定します。インデックスは「1」始まりです。
■第4引数:wait_time_value
⇒クリックをしたあとの停止時間(読み込み待ち時間)をミリ秒(1000ミリ秒⇒1秒)で指定します。指定しなければ100ミリ秒を指定したことになります。
XPathでの要素の指定方法
このページではクリックする要素の特定にXPathを使用していますが、これは最もおすすめの方法です。XPathはidのように特定の要素を直接指定することもでき、idやnameが設定されていない要素を指定することもできます。chromeでXPathを取得するとき「XPath」と「Full XPath」とを選択することもでき、idが動的に変化するページへの対応もできます。XPathでの指定方法だけ覚えておけば、ほとんどのWebスクレイピング系の開発に支障はありません。XPathの調べ方は「GoogleChromeでXPathを取得する」記事を参照してください。
サンプルコード(クリックでコピー)
Private Sub Test_LesserScraping_ClickByXPath()
Dim Driver As LesserScraping: Set Driver = New LesserScraping
Call Driver.Start
Call Driver.NavigateTo("https://funcref.com/", 1500)
Call Driver.MaximizeWindow
Call Driver.Click("//*[@id=""function_select""]/option[2]", lsXpath, , 500)
Call Driver.Click("//*[@id=""code_paste_area""]", lsXpath)
Set Driver = Nothing
End Sub
【結果】XPathを指定して要素をクリックすることができました
サンプルコードを実行すると当サイトのトップページ(関数リファレンス)へ移動し、関数No「F0000100:LesserScraping」をプルダウンから選択、コードエリアをクリックします。関数リファレンスはコードをクリックすると自動的にクリップボードへコードをコピーされます。
業務用PCでスクレイピングするなら「LesserScraping」
業務用PCでExcelVBA(マクロ)からWebスクレイピングをしようとすると「Selenium Basic」の導入でつまずく方は多いです。当サイトでは劣化版Selenium Basicと呼べる「Lesser Scraping」を開発し無償で公開しています。
Comment