首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于货件跟踪的ImportXML google表

用于货件跟踪的ImportXML google表
EN

Stack Overflow用户
提问于 2020-09-06 14:18:29
回答 1查看 2.5K关注 0票数 0

我想跟踪每个联邦快递,DHL和UPS的装运状态直接从谷歌单。我使用的是importxml函数:=IMPORTXML("code=us","//h1/div[@class="redesignSnapshotTVC snapshotController_addr_label dest"]/title")

然而,它显示了错误。为此附加工作表链接:https://docs.google.com/spreadsheets/d/1E1L0rn9-H4MCutI1On2uHDkkPo1pdjRpv014YREGIdU/edit?usp=sharing

请告诉我什么是最好的方法。我来自非技术背景。非常感谢你的帮助!

EN

回答 1

Stack Overflow用户

发布于 2020-09-09 14:46:01

共同的问题。您正在尝试导入加载后生成的html。这意味着我们必须寻找您想要的数据是如何生成的。

数据源

在对站点进行检查时,我发现它正在对URL https://www.fedex.com/trackingCal/track进行XHR,并且它是通过POST实现的,并且负载很长。响应采用JSON格式。值得注意的是,有scanEventList条目。

代码语言:javascript
复制
"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
},
...
]

解决方案

首先,从ImportJSON中获取GitHub脚本,并将其添加到工作表的脚本中(Tools > scripts )。这不是最令人惊讶的事情,但它至少会给我们提供ImportJSONViaPost()来获取我们想要的数据:

代码语言:javascript
复制
=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)

参数:

  1. 跟踪器的URL
  2. 岗位有效载荷。单元格A2保存您的跟踪号码。
  3. 空着
  4. 查询-让我们选择我们想要的数据。在本例中,我选择了承运人描述和整个scanEventList条目,但是您也可以指定特定的元素。
  5. "noHeaders“指的只是数据。

仅使用JSON导入就会为scanEventList的每个元素提供一个条目,但第一个元素是最新的,因此,我们使用INDEX检索第一个条目,该条目应该包含您需要的内容。

有关ImportJSON包的其他帮助,请参见这里

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63765125

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档