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

通过Google Apps Script从SimilarWeb提取多维度数据至Google Sheets的问题

问题描述

我需要获取Zalando等网站的以下数据:

  • Total Visits(总访问量)
  • Bounce Rate(跳出率)
  • Pages Per Visit(每次访问页数)
  • Avg Visit Duration(平均访问时长)
  • Age Distribution(年龄分布)
  • Gender Distribution(性别分布)
  • Marketing Channels Distribution(营销渠道分布)

目前使用的Google Apps Script代码仅能正确返回Total Visits数据,其余指标数据不准确,且未覆盖全部所需指标。尝试过ChatGPT 3.5但未解决问题。

function gatherSimilarWebData() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var websites = ['zalando.com'];
  var startRow = 2;
  var metrics = ['Total Visits', 'Bounce Rate', 'Pages/Session'];

  for (var i = 0; i < websites.length; i++) {
    var website = websites[i];
    var metricsData = [];

    for (var j = 0; j < metrics.length; j++) {
      var metric = metrics[j];
      var url = 'https://www.similarweb.com/website/' + website + '/#overview/' + metric.toLowerCase().replace(/ /g, '-');
      var response = UrlFetchApp.fetch(url);
      var html = response.getContentText();
      var metricData = null;
      try {
        metricData = html.match(/&quot;value&quot;:([^,}]+)/)[1];
      } catch (e) {
        Logger.log("Error getting metric data for " + metric + " on " + website + ": " + e);
      }
      metricsData.push(metricData);
    }

    var row = startRow + i;
    sheet.getRange(row, 1).setValue(website);
    for (var k = 0; k < metricsData.length; k++) {
      sheet.getRange(row, k + 2).setValue(metricsData[k]);
    }
  }
}
可行解决方案

1. 使用SimilarWeb官方API

SimilarWeb提供官方API,支持获取所有你需要的指标,包括受众人口统计(年龄、性别)和营销渠道数据:

  • 数据来自官方接口,无需依赖页面结构变化,准确性和稳定性有保障
  • 支持批量获取多网站的多维度数据
  • 可直接获取结构化JSON格式数据,无需手动解析HTML

2. 优化HTML解析逻辑(非官方,稳定性差)

如果暂时不使用API,需针对不同指标调整解析规则:

  • 不同指标在页面中的存储结构不同,需为每个指标编写单独的匹配规则,比如跳出率、访问时长可能不在"value"字段中,需定位到对应的JSON节点或HTML标签
  • 注意SimilarWeb部分数据是动态加载的,UrlFetchApp仅能获取初始HTML,动态数据需要模拟浏览器渲染(可结合Puppeteer,但Google Apps Script不直接支持,需部署外部服务)
  • 先提取页面中包含所有指标的完整JSON块,再从中精准提取对应字段,比单一正则匹配更可靠

3. 应对反爬机制

SimilarWeb会拦截非浏览器请求,直接用UrlFetchApp可能导致数据不全:

  • 添加浏览器模拟请求头,比如设置User-Agent为常见浏览器标识
  • 控制请求频率,添加请求间隔避免触发拦截
  • 部分高级指标需登录后查看,非官方方式处理登录态可能违反服务条款

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 02:17:38