如何从Excel VBA的ID名称中的类名称获取数据?

如何从datenumber类(全部3个)数据中获取数据?

如何从Excel VBA的ID名称中的类名称获取数据?

Sub Fii_dii()
    Set IE = CreateObject("InternetExplorer.Application")
    IE.Visible = True
    IE.Navigate "https://www.nseindia.com/products/content/equities/equities/fii_dii_market_today.htm"

    While IE.readyState <> 4
        DoEvents
    Wend

    'Copy data
    MsgBox IE.Document.all.Item("fiiTable").innerText
End Sub
lty83938477 回答:如何从Excel VBA的ID名称中的类名称获取数据?

浏览器在刷新页面时会从浏览器的“网络”选项卡中找到的另一个URI动态检索这些值。我只需要发出一个xmlhttp请求(更快且没有浏览器),然后使用css类选择器按类在所需的节点上进行匹配即可。循环返回的nodeList并写到Excel

Option Explicit

Public Sub ScrapeValues()
    Dim html As HTMLDocument,values As Object,i As Long,ws As Worksheet

    Set html = New HTMLDocument
    Set ws = ThisWorkbook.Worksheets("Sheet1")

    With CreateObject("MSXML2.XMLHTTP")
        .Open "GET","https://www.nseindia.com/products/dynaContent/equities/equities/htms/fiiEQ.htm",False
        .send
        html.body.innerHTML = .responseText
    End With

    Set values = html.querySelectorAll(".date,.number")

    For i = 0 To values.Length - 1
        With ws
            .Cells(i + 1,1) = values.Item(i).innerText
        End With
    Next
End Sub

如果要使用IE,则需要对这些元素的存在进行测试,并进行定时循环,例如

Option Explicit

Public Sub ScrapeValues()
    Dim ie As InternetExplorer,ws As Worksheet,t As Date
    Const MAX_WAIT_SEC As Long = 5 '<==adjust time here

    Set ie = New InternetExplorer
    Set ws = ThisWorkbook.Worksheets("Sheet1")

    With ie
        .Visible = True
        .Navigate2 "https://www.nseindia.com/products/content/equities/equities/fii_dii_market_today.htm"
        While .Busy Or .readyState <> 4: DoEvents: Wend

        t = Timer
        Do
            Set values = .document.querySelectorAll(".date,.number")
            If Timer - t > MAX_WAIT_SEC Then Exit Do
        Loop While values.Length = 0

        If values.Length > 0 Then
            For i = 0 To values.Length - 1
                With ws
                    .Cells(i + 1,1) = values.Item(i).innerText
                End With
            Next
        End If
        .Quit
    End With
End Sub

-

参考(VBE>工具>参考):

  1. Microsoft HTML对象库
  2. Microsoft Internet控件
本文链接:https://www.f2er.com/3093958.html

大家都在问