You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 03:19:59