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

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

2021/11/30 追記
もっと詳しい記事をアップしました。
そちらの記事では、参照設定等も詳しく解説したり、実際にGoogle検索を動かしたりしてますので、是非ご参照ください!

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

 

とある仕事で、 VB.NET と Google Chrome を使ってスクレイピングをすることになったのだが、最初から結構つまづいた(笑)

あっちこっちググって、C#やPythonのサンプルも解析し、やっと基本形ができたので、備忘録を兼ねて公開!

用意したフォームは、真ん中にボタンが1個あるだけの、いたってシンプルなヤツなので、割愛。

参照設定等は、 http://sig9.hatenablog.com/entry/2015/01/13/010335 この辺を参考に…



そして本題!

①お約束の Imports 等の設定

Option Explicit On
Option Strict On
Imports OpenQA.Selenium
Imports OpenQA.Selenium.Chrome
Imports System.Threading.Thread
Public Class Main
    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/")
            '一定時間インターバルを置く
            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の起動に失敗しました", MsgBoxStyle.Critical Or MsgBoxStyle.OkOnly)
            ChromeStart = False
        End Try
    End Function
④Chromeをクローズするサブ
    'Chromeをクローズするサブ
    Private Sub ChromeEnd()
        objChrome.Quit()
        objChrome.Dispose()
    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
以上!
各パラメータの設定等は、コード中にコメントとして書いてあります。



 

実行イメージ



Amazon

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

Amazon プライム対象