首页 > 解决方案 > 使用它们的类提取 HTML 元素值

问题描述

我查看了此链接Extract Table from Webpage in Excel using VBA 中提供的解决方案 ,它非常有帮助。但是我需要在每个 HTML 表格单元格(td)中提取具有某些类的元素。

  1. 网址是:https ://www.betfair.com/exchange/plus/football/competition/11997260

  2. HTML表格类为:coupon-table

  3. 要提取的价格嵌套在单元格内。它位于使用“bet-button-price”类的 Span 元素中。这就是我需要提取到 Excel 工作表中每个单元格的数据。

这是表结构的屏幕截图:

在此处输入图像描述

如果能获得任何帮助,将每个单元格中的价格提取到工作表中,我将不胜感激。

Public Sub GetInfo()
Const URL As String = "https://www.betfair.com/exchange/plus/football/competition/11997260"
Dim html As HTMLDocument, hTable As HTMLTable, ws As Worksheet, headers()
headers = Array("Countries", "Prices")
Set ws = ThisWorkbook.Worksheets("Sheet1")
Set html = New HTMLDocument
With CreateObject("MSXML2.XMLHTTP")
    .Open "GET", URL, False
    .send
    html.body.innerHTML = .responseText
End With
 Set hTable = html.querySelector("table.coupon-table")
Dim Td As Object, Tr As Object, r As Long, c As Long

r = 1
With ws
    .Cells(1, 1).Resize(1, UBound(headers) + 1) = headers
    For Each Tr In hTable.getElementsByTagName("tr")
        r = r + 1: c = 1
        If r > 3 Then
            For Each Td In Tr.getElementsByClassName("bet-button-price")
                .Cells(r - 2, c) = IIf(c = 2, "'" & Td.innerText, Td.innerText)
                c = c + 1
            Next
        End If
    Next
End With

结束子

标签: htmlexcelvbaweb-scraping

解决方案


你试过 getElementByClassName("yourclassname") 吗?


推荐阅读