Selenium VBA提取含div类的表格内容(需表格格式)求助
解决Selenium VBA抓取表格内容时行数据合并到单个单元格的问题
直接通过逐行逐单元格遍历提取文本并写入Excel,就能得到标准表格格式。以下是可复用的代码示例:
核心代码示例
Sub ExtractTableFromDiv() Dim driver As New ChromeDriver Dim targetTable As WebElement Dim tableRows As WebElements Dim tableRow As WebElement Dim tableCells As WebElements Dim tableCell As WebElement Dim rowNum As Integer, colNum As Integer ' 初始化浏览器并打开目标页面 driver.Start "chrome" driver.Get "你的目标页面URL" ' 定位目标div下的表格(替换成你实际的div class名称) Set targetTable = driver.FindElementByCss("div.target-div table") ' 获取表格所有行 Set tableRows = targetTable.FindElementsByTag("tr") ' 遍历每一行 rowNum = 1 For Each tableRow In tableRows ' 获取当前行的所有单元格 Set tableCells = tableRow.FindElementsByTag("td") ' 若为表头行,切换获取<th>标签 If tableCells.Count = 0 Then Set tableCells = tableRow.FindElementsByTag("th") End If ' 遍历当前行的每个单元格 colNum = 1 For Each tableCell In tableCells ' 将单元格文本写入Excel对应位置 Cells(rowNum, colNum).Value = tableCell.Text colNum = colNum + 1 Next tableCell rowNum = rowNum + 1 Next tableRow ' 关闭浏览器 driver.Quit End Sub
关键说明
- 替换代码中的
div.target-div为你实际需要定位的div的class选择器,比如div的class是data-table-wrap,就改成div.data-table-wrap table - 代码自动区分表头(
<th>)和数据单元格(<td>),确保表头内容也能正确提取 - 使用
tableCell.Text获取单元格纯文本,避免抓取冗余HTML标签 - 逐行逐单元格写入Excel,保证每个单元格对应表格里的独立单元,不会出现内容合并
特殊情况处理
如果单元格内有嵌套元素(如span、a标签),可以改用tableCell.GetAttribute("innerText")获取完整文本,兼容性更强。
内容的提问来源于stack exchange,提问作者TCritical
相关产品推荐
相关产品推荐

