Динамическая очистка веб-страниц с помощью Excel VBA

#excel #vba

Вопрос:

Я пытаюсь очистить динамически созданную веб — страницу с помощью Excel VBA. Я наткнулся на 3 решения:

  1. Internet Explorer в VBA — я не могу использовать это, так как моя книга Excel будет использоваться 100 людьми, и в настоящее время многие люди отключают Internet Explorer в своей системе.
  2. Базовый драйвер Selenium для VBA — Та же проблема, я не могу попросить каждого из 100 пользователей установить базовый драйвер selenium для VBA, а затем установить драйвер chrome.
  3. XMLHTTP — Поэтому я следовал этому подходу, но проблема в том, что я не могу изменить код таким образом, чтобы он позволял странице загружаться полностью.

Связь — https://marketchameleon.com/Overview/CTXS/Earnings/Earnings-Dates

Код — ` Дополнительные данные()

 Dim httpRequest As Object
Set httpRequest = CreateObject("MSXML2.XMLHTTP")
Dim URL As String

URL = "https://marketchameleon.com/Overview/CTXS/Earnings/Earnings-Dates"
With httpRequest
    .Open "GET", URL, False
    .setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
    .send
End With
With httpRequest
    While Not .readyState = 4                               '<---------- wait
        Application.Wait Now   TimeValue("0:00:02")
    Wend
    If .Status = 200 Then
        While InStr(1, .responseText, "Updating", 0) > 0    '<---------- wait again
            Application.Wait Now   TimeValue("0:00:02")
        Wend
        Debug.Print (.responseText)
        'continue...
    End If
End With
 

Конец подлодки
`

Необходимая информация — Дата и время получения дохода и Следующий предполагаемый доход (отмечен на скриншоте) введите описание изображения здесь

Комментарии:

1. URL, который вы указали в своем вопросе, и URL в вашем коде совершенно разные, опечатка? Ответ через XMLHTTP не загружается, поэтому вам не нужно проверять readystate или ждать его загрузки, потому что его нет.

2. @Raymond Wu спасибо, что указали на ошибку. Я обновил ссылку в части кода. Итак, есть ли какой-либо способ дождаться загрузки страницы, если я не могу использовать состояние готовности.

3. Там вообще нет никакой загрузки. Таким образом, вам придется найти нужные данные в ответе, и если вы не сможете их найти, вам придется искать XHR, который возвращает данные. Я думаю, что в вашей ситуации вам не повезло, так как данные, похоже, зашифрованы. @Mayank

4. Сотни людей сотрудничают в этом? Возможно, вам или одному человеку следует провести очистку и отправить результаты в централизованное хранилище данных.

5. @ASH Я думаю, что неправильно процитировал себя. Сотни пользователей не сотрудничают, но эта книга предназначена для индивидуального использования сотнями людей. Предполагается, что эта книга Excel будет продаваться отдельным пользователям, чтобы помочь им торговать акциями