使用VBA将网页中的文本复制到Excel工作表,错误"Object Required"



我想知道一个网站的发货情况。

为此,我需要从一个特定的url复制一个文本,如下-

从网站url - "https://www.aftership.com/track/safexpress/105431095",我需要输出到excel单元格">04/06/2022 00:00 DELIVERED";(从网上抄来的)

检查元素的文本我需要从网站像这样-

"& lt;Div class="风格="宽度:钙(100% - 500 px);"在

& lt;Div style="max-width: 100%;-webkit-box-orient: vertical;">

& lt;div槽="information&quot祝辞& lt;div> 04/06/2022 00:00 DELIVERED

"我参考了其他帖子,这是我运行的代码-

Sub get_text_from_web()
Dim html As Object
Dim website As String

website = "https://www.aftership.com/track/safexpress/107081775"
Set html = CreateObject("htmlFile")
With CreateObject("MSXML2.ServerXMLHTTP.6.0")
.Open "GET", website, False
.setRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Firefox/91.0"
.Send

If .Status = 200 Then
html.body.innerHTML = .responseText
Range("A1").Value = html.getElementsByClassName("flex flex-col justify-center")(0).innerText
Else
MsgBox "Page not loaded. HTTP status " & .Status
End If
End With
End Sub

我得到了"错误"424";对象要求">

有人可以帮助我这个代码,或一个更好的代码,我不精通任何类型的编码除了基本的vba。然后,我将这段代码放入一个循环中,并进行一些更改,并在我的excel中对所有跟踪号码运行它。

感谢

我认为问题在于数据是通过XHR请求检索的。需要查询API端点https://track.aftership.com/api/v2/direct-trackings/batch。这将为您提供作为JSON对象的响应,您需要解析(使用Google查找VBA的JSON库)。您的代码看起来像这样(未测试):

Dim url As String, body As String, json As String
url = "https://track.aftership.com/api/v2/direct-trackings/batch"
body = "{""direct_trackings"":[{""tracking_number"":""105431095"",""additional_fields"":{},""slug"":""safexpress""}],""translate_to"":""en""}"    
With CreateObject("MSXML2.ServerXMLHTTP.6.0")
.Open "POST", url, False
.SetRequestHeader "Content-Type", "application/json"
.Send body
If .Status = 201 Then
json = .responseText
'parse JSON response here
Else
MsgBox "Page not loaded. HTTP status " & .Status
End If
End With