Selenium VBA Excelチュートリアル(Chrome Web Scratch)ping)

⚡ スマートサマリー

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

  • 🧰 Selenium ウェブドライバー: VBA は Selenium ドライブ用のタイプライブラリ Google Chrome スクラ用ping.
  • 📚 タイプライブラリ: その Selenium WebDriverオブジェクトを宣言するには、まずタイプライブラリを参照する必要があります。
  • 🚀 開始して入手: Start メソッドは Chrome を開き、Get メソッドは対象の Web サイトを読み込みます。 URL.
  • 🔎 要素ロケーター: FindElementByClassとFindElementsByTagは、テーブルヘッダーとデータセルを特定します。
  • 📊 セルに書き込む: ネストされた For Each ループは、ヘッダーと行の値をワークシートのセルに書き込みます。
  • 🤖 AI 支援: AIコパイロットは、コードの記述、デバッグ、保守を支援します。 Selenium サイトの変更に伴うVBAスクリプトの更新。

Selenium VBA Excelチュートリアル

データスクレイピングとはping 使い方 Selenium?

Selenium は、スクレイピングを容易にする自動化ツールです。ping HTMLウェブページからの情報、ウェブスクレイピングの実行ping   Google ChromeExcelでは、 Selenium タイプライブラリを使用すると、VBA は非推奨の Internet Explorer エンジンではなく、実際のブラウザを操作できます。

データスクレイピング前にExcelマクロを準備する方法ping 使い方 Selenium

データスクレイピングを開始する前に、Excelマクロファイルに対して特定の前提条件を実行する必要があります。ping プロセス。

これらの前提条件は以下のとおりです。

ステップ1) Excelベースのマクロを開き、Excelの「開発」オプションにアクセスします。

データスクレイピング前にExcelマクロを準備するping   Selenium

ステップ2) 開発者リボンから「Visual Basic」オプションを選択します。

データスクレイピング前にExcelマクロを準備するping   Selenium

ステップ3) 新しいモジュールを挿入します。

データスクレイピング前にExcelマクロを準備するping   Selenium

ステップ4) 新しいサブルーチンを初期化し、test2という名前を付けます。

Sub test2()
End Sub

モジュール内の結果は以下のようになります。

データスクレイピング前にExcelマクロを準備するping   Selenium

ステップ5) ツール タブの [参照] オプションにアクセスして、 Selenium タイプライブラリ。このライブラリは、開くのに役立ちます。 Google Chrome また、マクロスクリプトの作成を容易にします。

参 考 Selenium Excel VBA のタイプライブラリ

これで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の使用

一度アクセスできるようになると Google Chrome VBA を使用する次のステップは、VBA を使用して Web サイトにアクセスすることです。これは Get 関数によって容易に行えます。 URL 二重引用符で渡されます。

モジュールは以下のようになります。

ウェブサイトを開く Google Chrome VBAを使用して

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

ウェブサイトを開く Google Chrome VBAを使用して

これで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モジュールは以下のようになります。

VBAを使用してWebサイトから情報をスクレイピングする

ステップ3) マクロスクリプトの準備ができたら、サブルーチンをExcelボタンに割り当ててVBAモジュールを終了します。ボタンには「更新」など、適切な名前を付けてください。この例では、ボタンのラベルは「更新」とします。

VBAを使用してWebサイトから情報をスクレイピングする

ステップ4) 更新ボタンを押すと、以下の出力が表示されます。

VBAを使用してWebサイトから情報をスクレイピングする

ステップ5) Excel の結果と、 Google Chrome.

VBAを使用してWebサイトから情報をスクレイピングする

よくあるご質問

Excelには Selenium タイプライブラリは、以下からインストールされます。 SeleniumBasicライブラリは、VBAエディターの「ツール」→「参照設定」から参照できます。このライブラリは、WebDriverオブジェクトと、ブラウザの自動化に使用されるStart、Get、FindElementByClassなどのメソッドを提供します。

Selenium VBAは運転できます Google Chrome、Mozilla Firefox, Microsoft EdgeそしてInternet Explorer。最も一般的なのはChromeです。各ブラウザにはそれぞれ対応するWebDriverが必要ですが、同じVBAコードで最小限の変更でブラウザを切り替えることができます。

その Internet Explorer の方法 HTMLオブジェクトライブラリを使用し、非推奨となっているIEのみに対応しています。 Selenium Chromeなどの最新ブラウザに対応し、マルチブラウザ対応とより信頼性の高い要素位置特定機能を提供します。

はい。AIコパイロットは Selenium 説明からVBAコードを取得し、要素ロケーターを提案し、エラーのデバッグを支援します。ウェブサイトが変更されると、AIは更新されたセレクタを提案し、スクラッチカードの保守にかかる手作業を軽減します。ping マクロ。

AIは、インテリジェントな要素検出、自然言語コマンド、自己修復ロケーターをブラウザの自動化に追加します。これらの機械学習機能により、ツールはレイアウトの変更に自動的に適応し、スクラッチを自動化します。ping そして、固定されたハードコードされたスクリプトよりも、テストの耐性が高い。