Api 用于装运包裹跟踪的导入XML google工作表
我想直接从谷歌表单跟踪联邦快递、DHL和UPS的发货状态。我正在使用importxml函数: =导入XML(“https://www.fedex.com/apps/fedextrack/?action=track&tracknumbers=“&C2&”&locale=en_US&cntry_code=US”,“//h1/div[@class=“redesignSnapshotVC snapshotController\u addr\u label dest”]/title”) 然而,它显示出错误。 正在为此附加“我的工作表”链接: 请告诉我最好的方法是什么。我来自非技术背景。Api 用于装运包裹跟踪的导入XML google工作表,api,google-sheets,google-sheets-importxml,Api,Google Sheets,Google Sheets Importxml,我想直接从谷歌表单跟踪联邦快递、DHL和UPS的发货状态。我正在使用importxml函数: =导入XML(“https://www.fedex.com/apps/fedextrack/?action=track&tracknumbers=“&C2&”&locale=en_US&cntry_code=US”,“//h1/div[@class=“redesignSnapshotVC snapshotController\u addr\u label dest”]/title”) 然而,它显示出错误
非常感谢你的帮助 常见问题。您正在尝试导入加载后生成的html。这意味着我们必须寻找您想要的数据是如何生成的 数据源 在检查该网站时,我发现它正在对URL
https://www.fedex.com/trackingCal/track
,它是通过一个长负载的POST来实现的。响应是JSON格式的。需要注意的是,这里有scanEventList
条目
“扫描事件列表”:[{
“日期”:“2020-07-15”,
“时间”:“13:15:00”,
“gmtOffset”:“-07:00”,
“状态”:“交付异常”,
“状态CD”:“DE”,
“扫描地点”:“加利福尼亚州圣贝纳迪诺”,
“丑闻”:“要求未来交付”,
“scanDetailsHtml”:“,
“rtrnShprTrkNbr”:“,
“statusExceptionCode”:“17”,
“isClearanceDelay”:false,
“IsDeliver”:错误,
“IsDeleteException”:正确,
“isException”:正确
},
...
]
解决方案
首先,从GitHub获取脚本,并将其添加到工作表的脚本中(工具>脚本编辑器)。这不是最令人惊奇的事情,但它至少会让我们ImportJSONViaPost()
获得我们想要的数据:
=INDEX(ImportJSONViaPost("https://www.fedex.com/trackingCal/track","data=%7B%22TrackPackagesRequest%22%3A%7B%22appType%22%3A%22WTRK%22%2C%22appDeviceType%22%3A%22DESKTOP%22%2C%22supportHTML%22%3Atrue%2C%22supportCurrentLocation%22%3Atrue%2C%22uniqueKey%22%3A%22%22%2C%22processingParameters%22%3A%7B%7D%2C%22trackingInfoList%22%3A%5B%7B%22trackNumberInfo%22%3A%7B%22trackingNumber%22%3A%22"&A2&"%22%2C%22trackingQualifier%22%3A%22%22%2C%22trackingCarrier%22%3A%22%22%7D%7D%5D%7D%7D&action=trackpackages&locale=en_US&version=1&format=json",,"/TrackPackagesResponse/packageList/scanEventList,/TrackPackagesResponse/packageList/trackingCarrierDesc","noHeaders"),1)
论据:
scanEventList
条目,但您也可以指定其中的特定元素scanEventList
的每个元素提供了一个条目,但第一个是最新的,因此,我们使用INDEX
检索第一个条目,它应该包含您需要的内容
有关ImportJSON包的其他帮助,请参阅