Braveとはプライバシーを重視した高速かつ安全な次世代ブラウザです。(公式の受け売り)
SeleniumBasicとExcel(VBA)を使って自動化しスクレイピングを行います。
事前準備
インストールがまだの方はこちらの記事を参考にSeleniumBasicをインストールしておいてください。
超簡単!vb.net+SeleniumBasicを使ってchromeにてスクレイピング(自動化)させる
バージョンの確認
BraveのベースはChromeの元となっているChromiumです。
Chromeを制御するchromedriver.exeがそのまま使えるため、Braveのバージョンを確認します。
上記の例では 94.0.4606.61でした。
対応するChromeDriverをインストールします
きっちり末尾の数値まで一致させないと駄目みたいですね。
ZIPファイルを展開し、 chromedriver.exe を以下の場所にコピーします。
SeleniumBasicがインストールされた場所(フォルダ)
参照設定
ここからはExcel上での作業になります。
Excelを立ち上げたらALT+F11を押下しVBAのIDEを起動してSheet1を選択。
ツール – 参照設定をクリックします。
参照設定でSelenium Type Libraryにチェックを付けて「OK」
SeleniumBasicからBraveを立ち上げてスクレイピングするサンプル
SeleniumBasicにはchromeのパスを指定する SetBinaryメゾッドがあります。
SetBinary "パス名\brave.exe"
Braveを立ち上げるVBAコード
以下のコードをVBのコードエディタに張り付けます。
F5押下で実行
Sub TestBrave()
Dim driver As New ChromeDriver
With driver
.SetBinary Environ$("ProgramW6432") & "\BraveSoftware\Brave-Browser\Application\brave.exe"
.Get "https://www.yahoo.co.jp/"
End With
End Sub
実行結果
SeleniumBasicでChromeを制御した時と同じように、
「Brave は自動テストソフトウェアによって制御されています。」
と表示されました。
BraveでスクレイピングをするVBA
Yahoo!の検索窓に「Brave」と入力し検索結果を取得するマクロサンプルです。
Sub TestBrave()
Dim driver As New ChromeDriver
Dim elmLoop As WebElement
Dim sURL As String
With driver
.SetBinary Environ$("ProgramW6432") & "\BraveSoftware\Brave-Browser\Application\brave.exe"
.Get "https://www.yahoo.co.jp/"
.FindElementByName("p").SendKeys "Brave" & vbLf
.Wait 5000
For Each elmLoop In .FindElementByCss("div.Contents__inner.Contents__inner--main > div.Contents__innerGroupBody").FindElementsByClass("sw-CardBase")
If Split(elmLoop.Text & vbLf, vbLf)(0) <> "広告" Then
sURL = elmLoop.FindElementByTag("A").Attribute("HREF")
If InStr(sURL, "http") Then
Debug.Print Split(elmLoop.FindElementByTag("A").Text & vbLf, vbLf)(1)
Debug.Print vbTab & sURL & vbCrLf
End If
End If
Next
End With
End Sub