Selenium VBA Excel教程(Chrome Web Scrap)ping)

⚡ 智能摘要

Selenium Excel 中的 VBA 可自动执行以下操作 Google Chrome 使用以下方法从 HTML 网页中抓取数据: Selenium 使用类型库和 WebDriver 方法打开网站,按类和标签定位表格元素,并将结果写入工作表单元格。

  • 🧰 Selenium WebDriver: VBA 使用 Selenium 驱动类型库 Google Chrome 废料ping.
  • 📚 类型库: 此 Selenium 必须先引用类型库,才能声明 WebDriver 对象。
  • 🚀 开始并获取: Start 方法会打开 Chrome 浏览器,Get 方法会加载目标网站。 URL.
  • 🔎 元素定位器: FindElementByClass 和 FindElementsByTag 用于定位表格标题和数据单元格。
  • 📊 写入单元格: 嵌套的 For Each 循环将标题和行值写入工作表单元格。
  • 🤖 人工智能协助: AI 副驾驶帮助编写、调试和维护 Selenium 网站更改时,VBA脚本也会随之更改。

Selenium VBA Excel教程

什么是数据抓取ping 运用 Selenium?

Selenium 是一款自动化工具,可简化刮擦过程。ping 从HTML网页中获取信息,执行网页抓取ping - Google Chrome在Excel中, 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 访问网站。这可以通过 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 从网站抓取信息

假设日内交易员想要每天访问网站上的数据。每次日内交易员点击按钮时,系统应该自动将市场数据导入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) 编写一个 for 循环,遍历 HTML 头部信息集合。 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 从网站抓取信息

步骤3) 宏脚本编写完成后,将子程序分配给 Excel 中的一个按钮,然后退出 VBA 模块。将按钮命名为“刷新”或任何合适的名称。在本例中,按钮被命名为“刷新”。

使用 VBA 从网站抓取信息

步骤4) 按下刷新按钮即可获得以下输出。

使用 VBA 从网站抓取信息

步骤5) 将 Excel 中的结果与结果进行比较 Google Chrome.

使用 VBA 从网站抓取信息

常见问题

Excel需要 Selenium 类型库,通过以下方式安装 Selenium该库位于 VBA 编辑器的“工具”>“引用”中,提供 WebDriver 对象以及 Start、Get 和 FindElementByClass 等方法,用于自动化浏览器操作。

Selenium VBA 可以驱动 Google Chrome,Mozilla Firefox, Microsoft Edge以及 Internet Explorer。Chrome 是最常用的选择。每个浏览器都需要其对应的 WebDriver,同一段 VBA 代码只需稍作修改即可在不同的浏览器之间切换。

Internet Explorer 方法 使用 HTML 对象库,且仅支持 IE 浏览器,而 IE 浏览器已被弃用。 Selenium 支持 Chrome 等现代浏览器,提供多浏览器支持和更可靠的元素定位。

是的。人工智能副驾驶可以生成 Selenium 根据描述生成 VBA 代码,建议元素定位器,并帮助调试错误。当网站发生更改时,AI 可以建议更新的选择器,从而减少维护 Scraj 的人工工作量。ping 宏。

AI 为浏览器自动化添加了智能元素检测、自然语言命令和自修复定位器。这些机器学习功能使工具能够自动适应布局变化,从而实现抓取。ping 而且测试比固定、硬编码的脚本更具弹性。

总结一下这篇文章: