今天早些时候我问了下面的问题Extract values from webpage table using VBA.所有答案都为我提供了访问HTML对象内部数据的方法.

我想为另一个网站做同样的事情,但似乎没有一个答案有效.网站是https://www.bcb.gov.br/.第一个框

#home > div > div:nth-child(1) > div.componente.cotacao > div

包含我想要的信息:

#home > div > div:nth-child(1) > div.componente.cotacao > div > cotacao > table:nth-child(1) > tbody > tr:nth-child(1) > td:nth-child(2) > span

外部HTML <span _ngcontent-epj-c113="">5,2037</span>

完整的X路径:

/html/body/app-root/app-root/div/div/main/dynamic-comp/div/div/div/div[1]/div[1]/div/cotacao/table[1]/tbody/tr[1]/td[2]/span

我还try 了Extracting div class information from website with VBA中给出的解决方案,循环通过类别名称或标记名称.

以下是提取网站并try 循环标签名称的示例代码

Sub WebData()
    Dim http As New XMLHTTP60, html As New HTMLDocument
    Dim source As Object

    With http
        .Open "GET", "https://www.bcb.gov.br", False
        .send
        html.body.innerHTML = .responseText
    End With
    
    
    For i = 1 To 1000
        Cells(i, 1) = html.getElementsByTagName("td")(i).innerText
    Next i
End Sub

推荐答案

当您使用帖子中的URL发出HTTP请求时,脚本无法查看数据,因为所需的数据是通过外部API加载的.try 以这种方式获取值.

Sub GrabCertainValue()
    Const Url$ = "https://www.bcb.gov.br/api/servico/sitebcb/indicadorCambio"
    Dim oHttp As Object, WS As Worksheet
    Dim Rxp As Object, sResp$, jVal As Object
    Dim valorCompra$

    Set WS = ThisWorkbook.Worksheets("Sheet1")
    Set oHttp = CreateObject("MSXML2.XMLHTTP")
    Set Rxp = CreateObject("VBScript.RegExp")
    
    With oHttp
        .Open "GET", Url, False
        .setRequestHeader "Accept", "application/json, text/plain, */*"
        .send
        sResp = .responseText
    End With
    
    valorCompra = vbNullString
    
    With Rxp
        .Global = True
        .MultiLine = True
        .Pattern = "valorCompra"":(.*?),"
        
        Set jVal = .Execute(sResp)
        If jVal.Count > 0 Then
            valorCompra = jVal(0).submatches(0)
        End If
    End With
    
    WS.Cells(1, 1) = valorCompra
End Sub

Html相关问答推荐

如何使文本从按钮中心生长?

后续使用收件箱从网页表中提取值

如何在将文本垂直居中的同时将文本右对齐?

需要帮助创建一个简单的html css网格布局

如何翻转卡片图像的背面

从网页中提取URL

如何将多个类名组合到CSS中的一个关键帧

悬停时宽度从 0 过渡到自动

我如何使用 html 在表格的单元格内实现下面显示的背景 colored颜色 加载器(请判断设计参考的图像链接)

如何垂直平移一个元素,使其新位置位于另外两个元素之间?

使用 calc 函数设置字体大小时 Flexbox 项目重叠

如何将元素均匀分布到容器的边缘?

a with