如何将VBA用于具有data-reactid的Web解析表

时间:2017-08-14 16:05:13

标签: html vba reactjs parsing

我试图从网站的表中解析每个元素,但是,该表是data-reactid的引用,问题是如何使用.Document.getElementsByXXX来解析每个元素?

'VBA to Get Table Data

    tblNameArr = Array(Worksheets("Sheet1").Cells(2, 4), Worksheets("Sheet1").Cells(3, 4), Worksheets("Sheet1").Cells(4, 4), Worksheets("Sheet1").Cells(5, 4))
    tblStartRow = 6
    Set elemCollection = IE.Document.getElementsByTagName("TABLE")
    For t = 0 To elemCollection.Length - 1
        For r = 0 To (elemCollection(t).Rows.Length - 1)
            For c = 0 To (elemCollection(t).Rows(r).Cells.Length - 1)
                ActiveSheet.Cells(r + tblStartRow, c + 1) = elemCollection(t).Rows(r).Cells(c).innerText
            Next c
        Next r

        ActiveSheet.Cells(r + tblStartRow + 2, 1) = tblNameArr(t)
        tblStartRow = tblStartRow + r + 4

    Next t

Below is the source code of the web which I need to parse

我需要解析的网站链接:

http://gu.qq.com/hk00001/gp/income

2 个答案:

答案 0 :(得分:0)

您可以使用.fin-table的CSS选择器。 “。”表示className。通过document的{​​{3}}方法应用。

IE.Document.querySelector(".fin-table") 

它返回一个可以确定的节点,因为这是该类名称的第一个/唯一。

答案 1 :(得分:0)

看起来该表的类名称为"fin-table",它是该页面上唯一具有该类名称的表。因此,您可以使用以下表格引用该表格:

IE.Document.getElementsByClassName("fin-table")(0)

@Domonic的回答从注释复制到此处