它是通过另一个 xhr 调用动态添加的,您可以在浏览器的网络选项卡中找到它。因此,将您的网址更改为该网址,然后使用 json 解析器来解析响应。
使用 json 解析器,例如 jsonconverter.bas 来处理响应。在名为 JsonConverter 的标准模块中安装该链接中的代码后,转到 VBE > 工具 > 参考 > 添加对 Microsoft Scripting Runtime 的引用。
您从作为 unix 时间戳返回的 json 中提取您的值。
1561791600000 > 2019-06-29T07:00:00.000Z
json 响应实际上包含有关跟踪的所有信息。您可以探索它here。
Option Explicit
Public Sub Test()
Dim json As Object
With CreateObject("WINHTTP.WinHTTPRequest.5.1")
.Open "GET", "https://www.afklcargo.com/resources/tnt/singleAwbDetails?awbId=074-26126063", False
.send
Set json = JsonConverter.ParseJson(.responseText)
Debug.Print json("booking")(1)("arrivalDateLong")("local")
End With
End Sub
两个函数,由 Schmidt 和 Navion 提供,用于将直接从 here 复制的戳记转换为日期时间。
Function Epoch2Date(ByVal E As Currency, Optional msFrac) As Date
Const Estart As Double = #1/1/1970#
msFrac = 0
If E > 10000000000@ Then E = E * 0.001: msFrac = E - Int(E)
Epoch2Date = Estart + (E - msFrac) / 86400
End Function
Function Epoch2DateS(ByVal epochstamp$) As Date
Epoch2DateS = CVDate(CDbl(DateSerial(1970, 1, 1)) + Int(Val(epochstamp$) / 1000#) / 86400)
End Function
注意
使用 json 解析器是可靠且推荐的方式,但您也可以使用正则表达式或split 函数来获取值。