Selenium VBA Excelチュートリアル(Chrome Web Scratch)ping)
⚡ スマートサマリー
Selenium ExcelのVBAは自動化します Google Chrome HTMLウェブページからデータをスクレイピングするには、 Selenium タイプライブラリとWebDriverのメソッドを使用してサイトを開き、クラスとタグでテーブル要素を特定し、結果をワークシートのセルに書き込みます。

データスクレイピングとはping 使い方 Selenium?
Selenium は、スクレイピングを容易にする自動化ツールです。ping HTMLウェブページからの情報、ウェブスクレイピングの実行ping Google ChromeExcelでは、 Selenium タイプライブラリを使用すると、VBA は非推奨の Internet Explorer エンジンではなく、実際のブラウザを操作できます。
データスクレイピング前にExcelマクロを準備する方法ping 使い方 Selenium
データスクレイピングを開始する前に、Excelマクロファイルに対して特定の前提条件を実行する必要があります。ping プロセス。
これらの前提条件は以下のとおりです。
ステップ1) Excelベースのマクロを開き、Excelの「開発」オプションにアクセスします。
ステップ2) 開発者リボンから「Visual Basic」オプションを選択します。
ステップ3) 新しいモジュールを挿入します。
ステップ4) 新しいサブルーチンを初期化し、test2という名前を付けます。
Sub test2() End Sub
モジュール内の結果は以下のようになります。
ステップ5) ツール タブの [参照] オプションにアクセスして、 Selenium タイプライブラリ。このライブラリは、開くのに役立ちます。 Google Chrome また、マクロスクリプトの作成を容易にします。
これでExcelファイルはブラウザと連携する準備が整いました。次のステップは、データスクレイピングを容易にするマクロスクリプトを組み込むことです。ping HTMLで。
開く方法 Google Chrome VBAの使用
開錠の手順は以下のとおりです。 Google Chrome VBAを使用します。
ステップ1) 以下に示すように、サブルーチン内で変数を宣言および初期化してください。
Sub test2() Dim driver As New WebDriver Dim rowc, cc, columnC As Integer
ステップ2) 開く Google Chrome Selenium VBA でドライバーを書き込みます。「Chrome」を起動して F5 キーを押します。
コードは次のようになります。
Sub test2() Dim driver As New WebDriver Dim rowc, cc, columnC As Integer driver.Start "Chrome" Application.Wait Now + TimeValue("00:00:20") End Sub
このモジュールは以下のように動作します。
ウェブサイトを開く方法 Google Chrome VBAの使用
一度アクセスできるようになると Google Chrome VBA を使用する次のステップは、VBA を使用して Web サイトにアクセスすることです。これは Get 関数によって容易に行えます。 URL 二重引用符で渡されます。
モジュールは以下のようになります。
F5キーを押してマクロを実行します。次のウェブページが開きます。 Google Chrome 示されるように。
Sub test2() Dim driver As New WebDriver Dim rowc, cc, columnC As Integer driver.Start "Chrome" driver.Get "https://demo.guru99.com/test/web-table-element.php" Application.Wait Now + TimeValue("00:00:20") End Sub
これでExcelマクロはスクレイピングを実行する準備ができましたping タスク。次のステップでは、情報がどのように表現できるかを示します。trac適用することによって Selenium そしてVBA。
VBAを使用してWebサイトから情報をスクレイピングする方法
デイトレーダーがウェブサイトから毎日データにアクセスしたいとします。デイトレーダーがボタンをクリックするたびに、市場データが自動的にExcelに取り込まれるようにする必要があります。
上記のウェブサイトから、要素を検査してデータの構造を観察する必要があります。Control + キーを押して、以下の HTML のソースコードにアクセスしてください。 Shift + 私。
<table class="datatable">
<thead>
<tr>
<th>Company</th>
<th>Group</th>
<th>Pre Close (Rs)</th>
<th>Current Price (Rs)</th>
<th>% Change</th>
</tr>
ご覧のとおり、データは単一のHTMLテーブルとして構成されています。そのため、HTMLテーブルからデータ全体を取得するには、ヘッダー情報とテーブルに関連付けられた対応するデータを取得するマクロを作成する必要があります。以下の手順を実行してください。
ステップ1) HTMLヘッダー情報をコレクションとして処理するForループを作成します。 Selenium ドライバは、図に示すように、FindElementByClass() メソッドと FindElementByTag() メソッドを使用してヘッダー情報を特定します。
Sub test2() Dim driver As New WebDriver Dim rowc, cc, columnC As Integer rowc = 2 Application.ScreenUpdating = False driver.Start "chrome" driver.Get "https://demo.guru99.com/test/web-table-element.php" For Each th In driver.FindElementByClass("dataTable").FindElementByTag("thead").FindElementsByTag("tr") cc = 1 For Each t In th.FindElementsByTag("th") Sheet2.Cells(1, cc).Value = t.Text cc = cc + 1 Next t Next th
ステップ2) 次、 Selenium ドライバは同様の方法でテーブルデータを見つけます。以下のコードを記述してください。
Sub test2() Dim driver As New WebDriver Dim rowc, cc, columnC As Integer rowc = 2 Application.ScreenUpdating = False driver.Start "chrome" driver.Get "https://demo.guru99.com/test/web-table-element.php" For Each th In driver.FindElementByClass("dataTable").FindElementByTag("thead").FindElementsByTag("tr") cc = 1 For Each t In th.FindElementsByTag("th") Sheet2.Cells(1, cc).Value = t.Text cc = cc + 1 Next t Next th For Each tr In driver.FindElementByClass("dataTable").FindElementByTag("tbody").FindElementsByTag("tr") columnC = 1 For Each td In tr.FindElementsByTag("td") Sheet2.Cells(rowc, columnC).Value = td.Text columnC = columnC + 1 Next td rowc = rowc + 1 Next tr Application.Wait Now + TimeValue("00:00:20") End Sub
Excel は、シートの Range 属性または Cells 属性を使用して初期化できます。VBA スクリプトの複雑さを軽減するため、コレクションデータはワークブックの Sheet 2 の Cells 属性に初期化されます。Text 属性を使用すると、テキストを HTML タグの下に配置できます。
Sub test2() Dim driver As New WebDriver Dim rowc, cc, columnC As Integer rowc = 2 Application.ScreenUpdating = False driver.Start "chrome" driver.Get "https://demo.guru99.com/test/web-table-element.php" For Each th In driver.FindElementByClass("dataTable").FindElementByTag("thead").FindElementsByTag("tr") cc = 1 For Each t In th.FindElementsByTag("th") Sheet2.Cells(1, cc).Value = t.Text cc = cc + 1 Next t Next th For Each tr In driver.FindElementByClass("dataTable").FindElementByTag("tbody").FindElementsByTag("tr") columnC = 1 For Each td In tr.FindElementsByTag("td") Sheet2.Cells(rowc, columnC).Value = td.Text columnC = columnC + 1 Next td rowc = rowc + 1 Next tr Application.Wait Now + TimeValue("00:00:20") End Sub
VBAモジュールは以下のようになります。
ステップ3) マクロスクリプトの準備ができたら、サブルーチンをExcelボタンに割り当ててVBAモジュールを終了します。ボタンには「更新」など、適切な名前を付けてください。この例では、ボタンのラベルは「更新」とします。
ステップ4) 更新ボタンを押すと、以下の出力が表示されます。
ステップ5) Excel の結果と、 Google Chrome.












