#excel #vba
Вопрос:
Я пытаюсь очистить динамически созданную веб — страницу с помощью Excel VBA. Я наткнулся на 3 решения:
- Internet Explorer в VBA — я не могу использовать это, так как моя книга Excel будет использоваться 100 людьми, и в настоящее время многие люди отключают Internet Explorer в своей системе.
- Базовый драйвер Selenium для VBA — Та же проблема, я не могу попросить каждого из 100 пользователей установить базовый драйвер selenium для VBA, а затем установить драйвер chrome.
- 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 будет продаваться отдельным пользователям, чтобы помочь им торговать акциями