Google表格上的UPS跟踪不起作用

时间:2018-10-23 20:22:41

标签: 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)

现在我遇到了错误

  

导入的内容为空

感谢您的帮助和时间。

谢谢

4 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:1)

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

  

= index(IMPORTXML(“ https://wwwapps.ups.com/tracking/tracking.cgi?tracknum=” && A1,“ // * [包含(@ class,'ups-group')]”),2)

答案 2 :(得分:0)

跟踪一些其他详细信息(A1跟踪的编号)

=iferror(
  IMPORTXML(
    "https://wwwapps.ups.com/tracking/tracking.cgi?tracknum="&$A1,"//*[@id='tt_spStatus']")&iferror(": "&substitute(index(index(IMPORTHTML("https://wwwapps.ups.com/tracking/tracking.cgi?tracknum="&$A1,"table"),2),1),",  United States",""),""
  ),
  "--"
)

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

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

答案 3 :(得分:0)

这些都不适合我在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";  
  }

}

此公式将在您的单元格中输出运输状态:

=IMPORTJSON(join("","http://shipit-api.herokuapp.com/api/carriers/ups/",A1),"activities/0/details")

我不需要其他详细信息,因此,如果其他用户需要更多信息,则我创建了另一个具有ups跟踪页面链接的单元格:

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