UPS 跟踪 Google Sheet 不工作
UPS Tracking On Google Sheet does not work
我使用以下公式获取 UPS 实时跟踪提要,直到昨天它都运行良好。我认为 UPS 已经更新了他们的网站,这个公式不再有效。关于如何从 UPS 获取跟踪更新的任何想法或建议?
=Index(IMPORTXML("https://wwwapps.ups.com/WebTracking/track?track=yes&trackNums="&A1,"//*[@id='tt_spStatus']"),1)
现在我收到一个错误
Imported content is empty
感谢您的帮助和时间。
谢谢
UPS 更新了此网页。它不再 returns 初始页面响应中的跟踪信息。它现在改为发出单独的 AJAX 请求以在页面加载后检索信息。
使用此公式代替 URL 更新到他们网站上的另一个页面,returns 初始页面响应中的跟踪信息:
=Index(IMPORTXML("https://wwwapps.ups.com/tracking/tracking.cgi?tracknum="&A1,"//*[@id='tt_spStatus']"),1)
有交货时间和状态,其中 A1 有跟踪代码。
=index(IMPORTXML("https://wwwapps.ups.com/tracking/tracking.cgi?tracknum="&A1,"//*[contains(@class,'ups-group')]"),2)
跟踪一些额外的细节(其中 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",""),""
),
"--"
)
准备发货的包裹结果:"Order Processed: Ready for UPS"
in-transit 个包裹的结果:"Picked Up: Atlanta, GA"
None 这些在 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 跟踪页面创建了另一个包含 link 的单元格:
=HYPERLINK("https://www.ups.com/track?loc=en_US&tracknum="&A1&"&requester=WT/trackdetails)")
我使用以下公式获取 UPS 实时跟踪提要,直到昨天它都运行良好。我认为 UPS 已经更新了他们的网站,这个公式不再有效。关于如何从 UPS 获取跟踪更新的任何想法或建议?
=Index(IMPORTXML("https://wwwapps.ups.com/WebTracking/track?track=yes&trackNums="&A1,"//*[@id='tt_spStatus']"),1)
现在我收到一个错误
Imported content is empty
感谢您的帮助和时间。
谢谢
UPS 更新了此网页。它不再 returns 初始页面响应中的跟踪信息。它现在改为发出单独的 AJAX 请求以在页面加载后检索信息。
使用此公式代替 URL 更新到他们网站上的另一个页面,returns 初始页面响应中的跟踪信息:
=Index(IMPORTXML("https://wwwapps.ups.com/tracking/tracking.cgi?tracknum="&A1,"//*[@id='tt_spStatus']"),1)
有交货时间和状态,其中 A1 有跟踪代码。
=index(IMPORTXML("https://wwwapps.ups.com/tracking/tracking.cgi?tracknum="&A1,"//*[contains(@class,'ups-group')]"),2)
跟踪一些额外的细节(其中 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",""),""
),
"--"
)
准备发货的包裹结果:"Order Processed: Ready for UPS"
in-transit 个包裹的结果:"Picked Up: Atlanta, GA"
None 这些在 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 跟踪页面创建了另一个包含 link 的单元格:
=HYPERLINK("https://www.ups.com/track?loc=en_US&tracknum="&A1&"&requester=WT/trackdetails)")