PR コンピューターとインターネット ソフトウェア/ガジェット

Selenium Basic と Chrome Driver を使用して、VB.NETでWebサーフィンを自動化するサンプル(改訂版)

過去記事 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 のページにある、インストールコマンドをコピペしてEnter。

すると 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 !!

最後に、実行画面のキャプチャをば…

Amazon

-コンピューターとインターネット, ソフトウェア/ガジェット
-, , , , ,

Amazon プライム対象