Selenium VBA Excel教程:Chrome网页抓取ping 例如:

什么是数据抓取ping 使用 Selenium 吗?

Selenium 可以将其归类为促进刮擦的自动化工具。ping 从HTML网页中提取信息以执行网络爬虫ping 使用谷歌浏览器。

如何在执行数据抓取之前准备 Excel 宏ping 使用 Selenium?

在开始数据抓取过程之前,必须对 Excel 宏文件执行某些先决条件操作。ping 在Excel中。

这些先决条件如下:-

步骤1) 打开基于 Excel 的宏并访问 Excel 的开发人员选项。

在执行数据抓取之前,请先准备好 Excel 宏。ping

步骤2) 选择开发人员功能区下的 Visual Basic 选项。

在执行数据抓取之前,请先准备好 Excel 宏。ping

步骤3) 插入新模块。

在执行数据抓取之前,请先准备好 Excel 宏。ping

步骤4) 初始化一个新的子程序并将其命名为test2。

Sub test2()
End sub

该模块的结果如下:-

在执行数据抓取之前,请先准备好 Excel 宏。ping

步骤5) 访问工具选项卡下的参考选项并参考 Selenium 类型库。以下库将被引用到模块,因为它有助于打开谷歌浏览器并促进宏脚本的开发。

在执行数据抓取之前,请先准备好 Excel 宏。ping

现在,Excel 文件已准备好与 Internet Explorer 交互。下一步是集成一个宏脚本,以简化数据抓取过程。ping 在HTML中。

怎么开 Google Chrome 使用 VBA?

以下是打开的步骤 Google Chrome 使用 VBA

步骤1) 声明并初始化子程序中的变量,如下所示

Sub test2()
Dim driver as new webdriver
Dim rowc, cc, columnC as integer

步骤2) 要使用 selenium 和 VBA 打开 Google Chrome,请写入 driver.start “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 访问 Google Chrome,下一步就是使用 VBA 访问网站。这可以通过 GET 函数来实现,其中…… URL 必须以双引号的形式在属性中传递。

按照显示的步骤进行操作

该模块如下所示:-

在以下位置打开网站 Google Chrome 使用VBA

按 F5 执行宏。

谷歌浏览器将会打开以下网页

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 + 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 表中提取整个数据,需要设计宏来提取 HTML 表的标题信息和与表相关的相应数据。执行以下显示的任务:-

步骤1) 制定一个 for 循环,将 HTML 标头信息作为一个集合运行。selenium 驱动程序必须找到 HTML 表的标头信息。为此,我们利用 FindElementByClass() 和 FindElementByTag() 方法执行显示的任务。

VBA 模块如下所示:–

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

vba 模块如下所示:-

可以通过 excel 工作表的 Range 属性或 excel 工作表的 cells 属性初始化 excel。为了降低 VBA 脚本的复杂性,将集合数据初始化为工作簿中存在的 sheet 2 的 excel 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 从网站抓取信息

结语

  • Selenium 可以将其归类为促进刮擦的自动化工具。ping 从HTML网页中提取信息以执行网络爬虫ping 使用谷歌浏览器。
  • 擦伤ping 在互联网上进行任何操作都应该谨慎。
  • 抓取信息通常是违反网站条款的。
  • 当刮擦ping 它是通过 Selenium 实现的,因此它支持多种浏览器。
  • 换句话说,刮削器可以执行与刮削类似的任务。ping 通过 Firefox, Internet Explorer 也是如此。

总结一下这篇文章: