Как я могу получить данные с сайта, используя VBA - PullRequest
0 голосов
/ 20 декабря 2018

Я новичок в кодировании vba для извлечения данных с веб-сайта, поэтому в целом я использую этот код для подключения и проверки элемента для извлечения данных с веб-сайта, но этот код не может проверять данные через watch in vba с моим фирменным веб-приложением.он ничего не показывает, когда я добавляю часы в класс, и что мне делать. HTML-код моего фирменного веб-приложения 1

HTML-код моего фирменного веб-приложения 2

Sub Connect_web()

    Dim ie As InternetExplorer
    Dim doc As HTMLdocument
    Dim ele As IHTMLElement
    Dim col As IHTMLElementCollection
    Dim ele_tmp As IHTMLElement

    Set ie = New InternetExplorer
    URL = "" ' Cannot provide
    ie.Visible = True
    ie.navigate URL

    Do While ie.readyState <> READYSTATE_COMPLETE

        Application.StatusBar = "Loading Page..."
        DoEvents

        End If

    Loop

    Set doc = ie.Document
    Set ele = doc.getElementByClassName("GDB3EHGDHLC")

end sub

1 Ответ

0 голосов
/ 20 декабря 2018

Давайте начнем с четырех вещей:

1) Вместо .Navigate используйте .Navigate2

2) Используйте правильное ожидание

While ie.Busy Or ie.readyState < 4: DoEvents: Wend

3) Исправьте синтаксис вашей строки Set ele.Вы используете ByClassName, который возвращает коллекцию и поэтому является множественным.Вы пропускаете s в конце element.

Поскольку вы объявили ele как единственное число (элемент), возможно, сначала установите коллекцию в отдельную переменную и индексируйте в эту коллекцию.

Dim eles As Object, ele As Object
Set eles  = doc.getElementsByClassName("GDB3EHGDHLC")
Set ele = eles(0)

4) Вы должны всегда использовать id поверх других атрибутов, если это возможно, так как id обычно быстрее для поиска.На вашем изображении есть идентификатор против этого класса (выделенный элемент).Я не собираюсь пытаться напечатать все это.Пожалуйста, поделитесь своим HTML, используя инструмент сниппета, отредактировав свой вопрос, чтобы мы могли легко найти ответ на ваш HTML.

Set ele = doc.getElementById("gwt-debug-restOfIdStringGoesHere")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...