如何解决ImportXML Google表格用于货运包裹跟踪
我想直接从Google表格中跟踪每个FEDEX,DHL和UPS的发货状态。我正在使用importxml函数: = IMPORTXML(“ https://www.fedex.com/apps/fedextrack/?action=track&tracknumbers=”&C2&“&locale = zh_CN&cntry_code = us”,“ // h1 / div [@ class =” redesignSnapshotTVC snapshotController_addr_label dest“] /标题”)
但是它显示错误。 为此附上我的工作表链接:https://docs.google.com/spreadsheets/d/1E1L0rn9-H4MCutI1On2uHDkkPo1pdjRpv014YREGIdU/edit?usp=sharing
请告诉我们什么是最好的方法。我来自非技术背景。 非常感谢您的帮助!
解决方法
常见问题。您正在尝试导入加载后生成的html。这意味着我们必须寻找所需数据的生成方式。
数据源
在检查该站点时,我发现它正在对URL https://www.fedex.com/trackingCal/track
进行XHR,并且它是通过POST进行的,且负载很长。响应为JSON格式。注意,有一个scanEventList
条目。
"scanEventList": [{
"date": "2020-07-15","time": "13:15:00","gmtOffset": "-07:00","status": "Delivery exception","statusCD": "DE","scanLocation": "SAN BERNARDINO,CA","scanDetails": "Future delivery requested","scanDetailsHtml": "","rtrnShprTrkNbr": "","statusExceptionCode": "17","isClearanceDelay": false,"isDelivered": false,"isDelException": true,"isException": true
},...
]
解决方案
首先,从GitHub获得ImportJSON脚本,并将其添加到工作表的脚本中(工具>脚本编辑器)。这不是最令人惊奇的事情,但这至少会给我们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)
参数:
- 跟踪器的网址
- POST有效负载。单元格A2保留您的跟踪号码。
- 留空
- 查询-让我们选择所需的数据。在此示例中,我选择选择运营商描述和整个
scanEventList
条目,但您也可以指定其中的特定元素。 - “ noHeaders”仅表示数据。
仅使用JSON导入即可为scanEventList
的每个元素提供一个条目,但第一个元素是最新的,因此,我们使用INDEX
来检索第一个条目,其中应包含您所需要的内容需要。
有关ImportJSON包的其他帮助,请参见here。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。