Извлечение данных с живого сайта - PullRequest
0 голосов
/ 08 июня 2018

Я немного новичок в использовании VBA для извлечения данных с веб-сайта, чтобы преуспеть, и мне было интересно, можете ли вы, ребята, помочь мне в извлечении данных с веб-сайта, чтобы преуспеть с помощью vba, а затем заставить его работать каждый час?

Я могу использовать код, чтобы обучиться этому

По сути, я хочу перейти на следующий сайт

А затем просто скопировать и вставить время поездки для всех дорог в Excel.Это будет включать текущий, идеальный и задержки.

Можно ли это сделать?

Ответы [ 2 ]

0 голосов
/ 23 июня 2018

Это должно делать то, что вы хотите!

Option Explicit
Sub Web_Table_Option_One()
    Dim xml    As Object
    Dim html   As Object
    Dim objTable As Object
    Dim result As String
    Dim lRow As Long
    Dim lngTable As Long
    Dim lngRow As Long
    Dim lngCol As Long
    Dim ActRw As Long
    Set xml = CreateObject("MSXML2.XMLHTTP.6.0")
    With xml
        .Open "GET", "https://www.cp24.com/mobile/commuter-centre/traffic", False
        .send
    End With
    result = xml.responseText
    Set html = CreateObject("htmlfile")
    html.body.innerHTML = result
    Set objTable = html.getElementsByTagName("Table")
    For lngTable = 0 To objTable.Length - 1
        For lngRow = 0 To objTable(lngTable).Rows.Length - 1
            For lngCol = 0 To objTable(lngTable).Rows(lngRow).Cells.Length - 1
                ThisWorkbook.Sheets("Sheet1").Cells(ActRw + lngRow + 1, lngCol + 1) = objTable(lngTable).Rows(lngRow).Cells(lngCol).innerText
            Next lngCol
        Next lngRow
        ActRw = ActRw + objTable(lngTable).Rows.Length + 1
    Next lngTable
End Sub

Установить соответствующие ссылки ...

enter image description here

0 голосов
/ 08 июня 2018

Вам потребуется добавить две ссылки в вашу библиотеку VBA для запуска этого кода.
Чтобы добавить необходимые ссылки: (VBE> Инструменты> Ссылки)

Библиотека объектов Microsoft HTML & Microsft Internet Controls

После запуска вы заметите, что вам потребуется Split строковых выходов для изоляции отдельных переменных (текущих, идеальных,задержки), а затем вам нужно будет систематически назначать их в таблицу в вашем Excel.

Вы должны провести некоторое исследование по поиску в Интернете, чтобы полностью понять, что происходит.Если вы перейдете на страницу> щелкните правой кнопкой мыши по маршруту> осмотреть элемент>, то увидите, что приведенный ниже код извлекается из тега "tr".("tr")(3) будет соответствовать третьему маршруту, указанному на сайте.

Sub MainSub()
Dim IE As InternetExplorer
Set IE = New InternetExplorer

IE.Navigate "https://www.cp24.com/mobile/commuter-centre/traffic"

Do
    DoEvents
Loop Until IE.ReadyState = ReadyState_Complete

Dim Doc As HTMLDocument
Set Doc = IE.Document

Dim FirstRoute As String
Dim SecondRoute As String

FirstRoute = Trim(Doc.getElementsByTagName("tr")(1).innerText)
SecondRoute = Trim(Doc.getElementsByTagName("tr")(2).innerText)

MsgBox FirstRoute & vbNewLine & vbNewLine & vbNewLine & SecondRoute

IE.Quit
Set IE = Nothing
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...