从不显示表的页面获取数据[关闭]

问题描述 投票:0回答:1

我正在尝试从网站上获取实时数据到我的Excel电子表格中。唯一的问题是当我通过Excel中的获取数据访问网页时,表格无法识别。我只能导入整个页面,即便如此,它也无法获得我需要的数据。如果提供了Url,我想运行一个宏来获取数据,因为有太多的页面只能手动完成。

我试图导入的数据是不同博彩公司的比较,这是一个例子https://www.oddschecker.com/tennis/kaitlyn-christian-sabrina-santamaria-v-tatjana-maria-heather-watson/winner

或者这个网站https://easyodds.com/tennis/atp/acapulco-mexico/928015/match-result任何一个都可以工作

我真的很感激对此的一些见解。任何人都可以帮忙!

为什么你的解决方案不适合我,这真的很奇怪:

enter image description here enter image description here

jquery excel vba excel-web-query
1个回答
0
投票

好。这是第一个链接的解决方案。

我可以整理一下输出,但它会让你开始。

选中活动表并将引用添加到MS XML和MS HTML Library。

参考

References

Option Explicit

Sub test4()

    Dim html As New HTMLDocument, http As New XMLHTTP60

    With http
        .Open "GET", "https://www.oddschecker.com/tennis/kaitlyn-christian-sabrina-santamaria-v-tatjana-maria-heather-watson/winner", False
        .Send
        html.body.innerHTML = .ResponseText
    End With

    Dim allRowOfData As Object

    Set allRowOfData = html.getElementsByClassName("at-12 standard-list")(0)

    Dim r As Long, c As Long

    Dim curHTMLRow As Object

    Dim counter As Long
    counter = 1

    For r = 0 To allRowOfData.Rows.Length - 1

        Set curHTMLRow = allRowOfData.Rows(r)

        Dim tblCell As HTMLTableCell

        For Each tblCell In curHTMLRow.Cells

          If Not tblCell.innerText = "1" And Not tblCell.innerText = "2" And Len(tblCell.innerText) > 0 Then
           ActiveSheet.Range("A" & counter).Value = Application.WorksheetFunction.Substitute(tblCell.innerText, "/", " over ")
           counter = counter + 1
          End If

        Next tblCell

    Next r

End Sub

结果:

Results

© www.soinside.com 2019 - 2024. All rights reserved.