Skip to content Skip to sidebar Skip to footer

Modifying The Program For Parsing

There is a program that parse a certain table from the site . Works great . I want to parse another table from the site . By the tag number “table” they are the same . I am tr

Solution 1:

This is not particularly robust but does grab the values from the table. iLoop is not used.

Option Explicit
Public Sub test()    
    extractTable "http://allscores.ru/soccer/fstats.php?champ=2604&team=439&team2=420&tour=110", ThisWorkbook, 1    
End Sub

Public Sub extractTable(Ssilka As String, book1 As Workbook)
    Dim oDom As Object, oTable As Object
    Dim oHttp As Object
    Dim oRegEx As Object
    Dim sResponse As String
    Set oHttp = CreateObject("MSXML2.XMLHTTP")
    oHttp.Open "GET", Ssilka, False
    oHttp.send
    sResponse = StrConv(oHttp.responseBody, vbUnicode)
    Set oHttp = Nothing

    sResponse = Mid$(sResponse, InStr(1, sResponse, "<!DOCTYPE "))

    Set oRegEx = CreateObject("vbscript.regexp")
    With oRegEx
        .MultiLine = True
        .Global = True
        .IgnoreCase = False
        .Pattern = "<(script|SCRIPT)[\w\W]+?</\1>"
        sResponse = .Replace(sResponse, "")
    End With
    Set oRegEx = Nothing
    Set oDom = CreateObject("htmlFile")
    oDom.Write sResponse

    Set oTable = oDom.getElementsByTagName("table")(3)

    Dim b As Object, a As Object
    Set b = oTable.getElementsByTagName("TR")    'DispHTMLElementCollection

    Dim i As Long, y As Long
    With ActiveSheet
        For i = 3 To 17 '17-3 gives the 15 rows of interest. Start at 3 to avoid header and empty row.
            Set a = b(i).ChildNodes
            For y = 1 To a.Length - 1
                .Cells(i - 2, y) = a(y).innerText
            Next y
        Next i
    End With
End Sub

Post a Comment for "Modifying The Program For Parsing"