過去記事 Selenium Basic と Chrome Driver を使用して、VB.NETでWebサーフィンを自動化するサンプル が、当ブログではかなり人気が高い。
しか~し
Googleに飛んだあと、何もしないサンプルって、どうなのよ?(笑)と思ったので、改訂版です。
ってなワケで今回は、上記過去記事のサンプルに、検索キーワードを入力して、検索ボタンを押す、といった処理を追加してあります。
なぜ、Selenium Basic と Chrome Driver をVB.NETで使うことになったか?というと、とあるスクレイピング案件でその様な仕様に決まったという、単純な理由でしたw
あっちこっちググって、C#やPythonのサンプルも解析し、やっと基本形ができたので、備忘録を兼ねて公開!ってなワケです。
Selenium Basic 本体のインストール
コレは説明するのがすごく面倒くさいので…
いつもユーザーさんに配布している、インストールファイルと手順書一式をリンクしますんで、ダウンロードして解凍して、参考にしてください。
これさえやっておけば、 VB.NET だけではなく Excel VBA の案件が来ても、即対応できますよ!
SeleniumInstall.zip
Selenium.WebDriver のインストール
https://www.nuget.org/packages/Selenium.WebDriver の指示通りに、Selenium.WebDriverをインストールします。
すると Selenium.WebDriverパッケージがインストールされます。
参照設定まで、コレで出来てしまいます。
今回のサンプルのフォーム
今回のサンプルに使用したフォームは、いたってシンプルです。
単純に、フォームの真ん中に起動用ボタンを配置しただけですw
以上で、設定は終わりです。
いよいよコードに入ります。
Selenium Basic と Chrome Driver を使用して、VB.NETでWebサーフィンを自動化するサンプル コード
まずは、お約束のImports等の記述
Option Explicit On
Option Strict On
Imports OpenQA.Selenium
Imports OpenQA.Selenium.Chrome
Imports System.Threading.Thread
Public Class Main
'Selenium WebDriverの定義
Dim objChrome As IWebDriver
メイン処理
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
'Chromeをオープンする
If ChromeStart() Then
'正常にオープンできた場合、以下の処理をする
'ページを読み込む待機時間を設定する
objChrome.Manage.Timeouts.ImplicitWait = New TimeSpan(30)
'Googleへ飛ぶ
objChrome.Navigate.GoToUrl(“http://www.google.co.jp/”)
'キーワードを入力
objChrome.FindElement(By.Name("q")).Clear()
objChrome.FindElement(By.Name("q")).SendKeys("yab887.com")
'検索ボタンを押す
objChrome.FindElements(By.Name("btnK"))(1).Click()
'一定時間インターバルを置く
Intvl(20)
End If
'Chromeをクローズする
ChromeEnd()
End Sub
Chrome をオープンする関数
'Chromeをオープンする関数
Private Function ChromeStart() As Boolean
'コマンドプロンプトは表示したくない
Dim DriverService = ChromeDriverService.CreateDefaultService
DriverService.HideCommandPromptWindow = True
'1024×768のサイズで開きたい
Dim Options As New ChromeOptions
Options.AddArgument(“--window-size=1024,768”)
Try
objChrome = New ChromeDriver(DriverService, Options)
ChromeStart = True
Catch ex As Exception
MsgBox(“Chromeの起動に失敗しました” & vbCrLf & ex.Message, MsgBoxStyle.Critical Or MsgBoxStyle.OkOnly)
ChromeStart = False
End Try
End Function
Chromeをクローズするサブ
'Chromeをクローズするサブ
Private Sub ChromeEnd()
Try
objChrome.Quit()
objChrome.Dispose()
Catch ex As Exception
MsgBox(“Chromeの停止に失敗しました” & vbCrLf & ex.Message, MsgBoxStyle.Critical Or MsgBoxStyle.OkOnly)
End Try
End Sub
一定時間待機させる処理
'インターバル
Private Sub Intvl(prSeed As Integer)
Dim wkIntvl As Integer
wkIntvl = 0
'一秒以上、パラメータの指定値以下をランダムに決める
Do Until wkIntvl >= 1000
wkIntvl = prSeed * 1000
wkIntvl = CInt(Rnd() * CSng(wkIntvl))
Loop
Sleep(wkIntvl)
End Sub
End Class
いかがだったでしょうか?
この記事を参考に、 VB.NET と Selenium Basic と Chrome Driver で、オートサーフィンを楽しんでくださいね!
Enjoy !!
最後に、実行画面のキャプチャをば…