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

使用IMPORTXML从Safgard提取商品尺码至Google Sheet遇N/A问题求助

解决Google Sheets IMPORTXML提取Safgard网站尺码返回N/A的问题
  • 核心原因:这个网站的尺码数据是通过JavaScript动态渲染的,IMPORTXML只能抓取页面的静态HTML源码,根本读不到JS加载出来的内容。你右键复制的XPath对应的元素,在静态源码里不存在,自然返回N/A。
  • 验证方式:打开目标链接,右键点「查看页面源代码」(别用「检查元素」,检查元素是渲染后的DOM),搜索尺码相关的关键词(比如US 10、EU 43),如果搜不到,就实锤是动态加载的问题。
  • 可行解决办法:
    1. 用Google Apps Script写简单爬虫:
      先在Google Sheets里打开「扩展程序」→「Apps脚本」,粘贴下面的代码(注意替换尺码对应的CSS选择器,需要自己看渲染后的DOM找正确的类名或标签):
      function getSafgardShoeSizes() {
        const targetUrl = "https://www.safgard.com/mens-shoes?min_price=0&max_price=0&records_per_page=36&current_page=1&order_by_column=purchases_last_six_months&order_by_modifier=DESC&gender=M";
        const pageContent = UrlFetchApp.fetch(targetUrl).getContentText();
        const $ = Cheerio.load(pageContent); // 需要先在脚本编辑器的「资源」→「库」里添加Cheerio库
        
        const sizeList = [];
        // 替换成实际的尺码元素选择器,比如页面里尺码按钮的类名
        $('.size-selector .size-item').each(function() {
          sizeList.push($(this).text().trim());
        });
        
        // 把结果写入当前工作表的A列
        const activeSheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
        activeSheet.getRange(1, 1, sizeList.length, 1).setValues(sizeList.map(size => [size]));
      }
      
      保存后运行脚本,授权权限就能获取到尺码数据。
    2. 用自定义函数IMPORTJSON:如果不想写代码,可以搜索安装IMPORTJSON自定义函数,尝试抓取接口数据(前提是能找到网站加载尺码的API接口)。
    3. 第三方工具辅助:比如用ParseHub这类可视化爬虫工具抓取数据,再导出CSV导入到Google Sheets。
  • 注意事项:网站可能有反爬机制,别频繁请求,避免IP被封禁。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 21:55:24