gpt4 book ai didi

excel - VBA XML V6.0 如何让它等待页面加载?

转载 作者:数据小太阳 更新时间:2023-10-29 03:01:36 26 4
gpt4 key购买 nike

我一直在努力寻找答案,但似乎找不到任何有用的东西。

基本上,当您在页面上时,我从一个加载更多项目的网站中提取内容。我希望我的代码在完成加载后提取最终数据,但我不确定如何让 XML httprequest 等待它。

编辑:

Sub pullsomesite()
Dim httpRequest As XMLHTTP
Dim DataObj As New MSForms.DataObject
Set httpRequest = New XMLHTTP
Dim URL As String
URL = "somesite"
With httpRequest
.Open "GET", URL, True
.setRequestHeader "If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT"
.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
Application.Wait Now + TimeValue("0:02:00")
.send
' ... after the .send call finishes, you can check the server's response:
End With
While Not httpRequest.readyState = 4 '<---------- wait
Wend
If httpRequest.Status = 200 Then
Application.Wait Now + TimeValue("0:00:30")
Debug.Print httpRequest.responseText
'continue...
End If
'Debug.Print httpRequest.Status
'Debug.Print httpRequest.readyState
'Debug.Print httpRequest.statusText
DataObj.SetText httpRequest.responseText
DataObj.PutInClipboard

With Sheets("Sheet1")
.Activate
.Range("A1000000").End(xlUp).Offset(1, 0).Select
.PasteSpecial Format:="Text", Link:=False, DisplayAsIcon:=False, NoHTMLFormatting:=True
End With
End Sub

截图

Screenshot

最佳答案

尝试等待响应的就绪状态和正文不包含“正在更新”一词:

Option Explicit

Sub pullSomeSite()
Dim httpRequest As XMLHTTP
Set httpRequest = New XMLHTTP
Dim URL As String

URL = "SomeSite"
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:01")
Wend
If .Status = 200 Then
While InStr(1, .responseText, "Updating", 0) > 0 '<---------- wait again
Application.Wait Now + TimeValue("0:00:01")
Wend
Debug.Print .responseText
'continue...
End If
End With
End Sub

关于excel - VBA XML V6.0 如何让它等待页面加载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32359729/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com