VBA ExcelВзаимодействие с источником веб-страницы Internet Explorer - PullRequest
1 голос
/ 06 марта 2019

Итак, я сейчас работаю над проектом, в котором я пытаюсь очистить данные с веб-страницы и экспортировать их в Excel. Этот вопрос изучался много раз, но я чувствую, что на один простой вопрос еще предстоит ответить. Часто источник веб-страницы «скрывает» всю полезную информацию.

В моей ситуации таблица Excel, из которой я пытаюсь получить данные, получает данные из других онлайн-приложений. Данные постоянно меняются каждый день, и я пытаюсь разработать инструмент, чтобы справиться с этим.

Мои попытки найти решение:

  1. Я подумал, что смогу просто извлечь данные из таблицы и загрузить их напрямую, используя этот код.
For Each Tab1 In HTML_Content.getElementsByTagName("table") 
    With HTML_Content.getElementsByTagName("table")(iTable)
        For Each ERow In .Rows
            For Each ECol In ERow.Cells
                Sheets(1).Cells(iRow, iCol).Select
                Sheets(1).Cells(iRow, iCol) = ECol.innerText
                iCol = iCol + 1
             Next ECol
             iCol = Column_Num_To_Start
             iRow = iRow + 1
        Next ERow
    End With
    iTable = iTable + 1
    iCol = Column_Num_To_Start
    iRow = iRow + 1
Next Tab1

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

  1. Возможно, подойдет выполнение «копирования и вставки».
Dim ie As InternetExplorer
Set ie = New InternetExplorerMedium
ie.Visible = True
ie.Navigate Web_URL    
Application.Wait (Now + TimeValue("0:00:05"))
Set objCollection = ie.Document.getElementsByClassName("k-widget k-reset   k-header k-menu k-context-menu k-menu-vertical")
i = 0
While i < objCollection.Length
    If objCollection(i).ID = "menu" Then ' submit button clicking
        Set objElement = objCollection(i)
    End If
    i = i + 1
Wend
objElement.rClick

objElement.rClick не работает, потому что это не настоящая команда. Еще одна проблема, связанная с этим подходом, заключается в том, что меню правой кнопки мыши на веб-странице фактически отключено. Если щелкнуть правой кнопкой мыши, откроется новое меню, поэтому для копирования огромного количества данных вам придется вручную выделить и скопировать все. Это утомительный процесс, и делать это каждый день нежелательно.

Мой последний вопрос: есть ли способ обойти эту проблему. Могу ли я собрать данные с веб-сайта, используя Excel VBA, который отключает нажатие правой кнопки мыши и не содержит данных, которые я хочу, содержать в источнике веб-страницы?

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