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

使用Google Sheets的IMPORTXML爬取Transfermarkt数据遇问题求助

解决Google Sheets IMPORTXML爬取Transfermarkt球队信息失败的问题

问题根源

出现「Resource at URL not found」错误,核心原因是Transfermarkt的反爬机制:Google Sheets的IMPORTXML请求没有携带浏览器标识的User-Agent,被服务器直接拦截,并非路径或URL本身的问题。

解决办法:用Google Apps Script自定义函数绕开反爬

  1. 打开你的Google Sheets,点击菜单栏「扩展程序」→「Apps Script」
  2. 删除默认代码,粘贴以下脚本:
function getTransfermarktTeam(url) {
  const options = {
    headers: {
      'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36'
    }
  };
  const response = UrlFetchApp.fetch(url, options);
  const content = response.getContentText();
  const doc = XmlService.parse(content);
  const root = doc.getRootElement();
  // 用基于class的相对XPath,比绝对路径更稳定
  const teamElement = XmlService.getNamespaceManager().getXPathResult(root, '//span[contains(@class, "info__content")]/a[1]', XmlService.XPathResultType.FIRST_ORDERED_NODE_TYPE);
  return teamElement.singleNodeValue ? teamElement.singleNodeValue.getText() : 'N/A';
}
  1. 保存脚本(可命名为TransfermarktScraper),回到表格后,在目标单元格输入=getTransfermarktTeam(B1)即可获取球队名称。

补充说明

  • 原XPath失效风险:你之前用的绝对路径/html/body/div[3]/main/header/div[4]/div/span[1]/a依赖页面固定层级,Transfermarkt页面结构一旦调整就会失效;改用基于class属性的相对XPath(比如上述脚本里的路径),稳定性会大幅提升。
  • 后续扩展提取其他数据:只需修改脚本中的XPath即可(比如提取身价可定位对应class的元素),同时注意不要频繁批量请求,避免触发IP封禁。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 08:56:07