You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Sheets使用IMPORTXML抓航班数据提示XML无法解析如何解决

Google Sheets 抓取FlightAware航班预计到达时间实现方案

原公式报错原因

你之前使用的IMPORTXML方案无法生效,核心问题有两个:

  • XPath语法存在错误:starts-with()函数参数格式、括号闭合位置、引号嵌套均不符合语法规则
  • 数据源限制:FlightAware的航班动态数据为前端JavaScript动态渲染生成,IMPORTXML仅能抓取页面初始静态HTML源码,无法获取JS加载完成后的实际时间节点,即使XPath写对也无法解析到目标内容。

可行实现方案

使用Google Apps Script编写自定义抓取函数,绕过IMPORTXML的静态内容限制,具体操作如下:

  1. 打开目标Google Sheets表格,点击顶部菜单栏「扩展程序」→「Apps Script」进入脚本编辑页面
  2. 清空编辑器内默认的占位代码,粘贴以下代码:
function GET_FLIGHT_ETA(flightUrl) {
  const requestOptions = {
    headers: {
      'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36'
    },
    muteHttpExceptions: true
  };
  const pageContent = UrlFetchApp.fetch(flightUrl, requestOptions).getContentText();
  // 匹配 04:19PM EDT 格式的预计到达时间
  const etaMatch = pageContent.match(/\d{1,2}:\d{2}[AP]M\s[A-Z]{2,4}/);
  return etaMatch ? etaMatch[0] : "获取失败";
}
  1. 点击编辑器顶部保存按钮,为项目自定义名称(如FlightETACrawler),按照弹窗提示完成脚本授权(谷歌提示应用未验证时,点击「高级」→「前往对应项目」即可完成授权,所有数据仅在你个人的谷歌账号空间内运行)
  2. 回到表格单元格,输入公式即可提取目标格式的预计到达时间:
    =GET_FLIGHT_ETA("对应航班的FlightAware追踪页面地址")

自动刷新配置

要实现航班延误/提前时数据自动更新,可配置定时触发器:

  • 在Apps Script编辑页左侧点击时钟样式的「触发器」按钮
  • 选择「添加触发器」,触发函数选择GET_FLIGHT_ETA,根据需求设置触发频率(建议最短设置为15分钟/次,避免触发网站反爬限制),保存后即可按设定周期自动抓取最新时间写入单元格。

内容的提问来源于stack exchange,提问作者cquadez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 11:42:17