Web scraping UPS在谷歌表单上的跟踪不起作用

Web scraping UPS在谷歌表单上的跟踪不起作用,web-scraping,import,google-sheets,shipping,ups,Web Scraping,Import,Google Sheets,Shipping,Ups,我使用了下面的公式得到UPS实时跟踪饲料,它的工作良好,直到昨天。我认为UPS已经更新了他们的网站,这个公式已经不起作用了。关于如何从UPS获取跟踪更新,有什么想法或建议吗 =Index(IMPORTXML("https://wwwapps.ups.com/WebTracking/track?track=yes&trackNums="&A1,"//*[@id='tt_spStatus']"),1) 现在我得到一个错误 导入的内容为空 我感谢你的帮助和时间 谢谢UPS更新了此网页

我使用了下面的公式得到UPS实时跟踪饲料,它的工作良好,直到昨天。我认为UPS已经更新了他们的网站,这个公式已经不起作用了。关于如何从UPS获取跟踪更新,有什么想法或建议吗

=Index(IMPORTXML("https://wwwapps.ups.com/WebTracking/track?track=yes&trackNums="&A1,"//*[@id='tt_spStatus']"),1)
现在我得到一个错误

导入的内容为空

我感谢你的帮助和时间


谢谢

UPS更新了此网页。它不再在初始页面响应中返回跟踪信息。现在,它会发出一个单独的AJAX请求,在页面加载后检索信息

使用此公式时,URL将更新到其站点上的另一个页面,该页面在初始页面响应中返回跟踪信息:

=Index(IMPORTXML("https://wwwapps.ups.com/tracking/tracking.cgi?tracknum="&A1,"//*[@id='tt_spStatus']"),1)

A1具有跟踪代码的交货时间和状态

=索引(IMPORTXML(“&A1,”/*[contains(@class,'ups-group')]”),2)


带有一些额外细节的跟踪(其中A1是跟踪编号):

包裹准备装运结果:“已处理订单:准备UPS”


运输中包裹的结果:“提货:佐治亚州亚特兰大”

这些在2020年对我来说都不起作用,但以下是它们的作用:

在脚本编辑器中添加此函数:

function IMPORTJSON(url,xpath){

  try{
    // /rates/EUR
    var res = UrlFetchApp.fetch(url);
    var content = res.getContentText();
    var json = JSON.parse(content);

    var patharray = xpath.split("/");
    //Logger.log(patharray);

    for(var i=0;i<patharray.length;i++){
      json = json[patharray[i]];
    }

    //Logger.log(typeof(json));

    if(typeof(json) === "undefined"){
      return "Node Not Available";
    } else if(typeof(json) === "object"){
      var tempArr = [];

      for(var obj in json){
        tempArr.push([obj,json[obj]]);
      }
      return tempArr;
    } else if(typeof(json) !== "object") {
      return json;
    }
  }
  catch(err){
      return "Error getting data";  
  }

}
我不需要其他详细信息,因此我制作了另一个单元格,如果其他用户需要更多信息,可以链接到ups跟踪页面:

=HYPERLINK("https://www.ups.com/track?loc=en_US&tracknum="&A1&"&requester=WT/trackdetails)")

嘿,阿内尔,非常感谢你的帮助。这对我来说是有效的。这种方法似乎不再有效了。有任何修改,使这项工作?这将只给我交货日期tho。如何获取当前状态,如运输中或已交付。非常感谢。
=IMPORTJSON(join("","http://shipit-api.herokuapp.com/api/carriers/ups/",A1),"activities/0/details")
=HYPERLINK("https://www.ups.com/track?loc=en_US&tracknum="&A1&"&requester=WT/trackdetails)")