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

Google Ads脚本使用Regex统计爬取页面HTML片段出现次数咨询

修改后的完整脚本

场景1:需要统计messagesToCheckFor中所有HTML片段的总出现次数

// 初始化结果二维数组,结构可直接适配Google Sheet的setValues方法写入
var urlMatchCount = [];

for(var x in urls){
    var response = UrlFetchApp.fetch(urls[x], urlFetchOptions);
    var code = response.getContentText();
    var totalCount = 0;

    // 遍历所有待检测的HTML片段
    for(var y = 0; y < messagesToCheckFor.length; y++){
      var message = messagesToCheckFor[y];
      // 转义HTML片段中的正则特殊字符,避免元字符导致匹配异常
      var escapedMessage = message.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
      var re = new RegExp(escapedMessage, 'g');
      var singleCount = 0;

      while(re.exec(code)){
        singleCount++;
      }
      totalCount += singleCount;
    }

    // 存入URL和对应总匹配次数
    urlMatchCount.push([urls[x], totalCount]);
}

场景2:仅需要统计单个固定正则的匹配次数(如你示例的dpb-product-link类名)

var urlMatchCount = [];
var re = /dpb-product-link svelte-1yex87k/g;

for(var x in urls){
    var response = UrlFetchApp.fetch(urls[x], urlFetchOptions);
    var code = response.getContentText();
    var count = 0;
    // 重置正则的lastIndex,避免上一次匹配的缓存影响本次计数
    re.lastIndex = 0;

    while(re.exec(code)){
        count++;
    }

    urlMatchCount.push([urls[x], count]);
}
关键逻辑说明
  • 最终输出的urlMatchCount是二维数组,每一项对应Google Sheet的一行数据,第一列为URL,第二列为匹配次数,可直接调用sheet的setValues(urlMatchCount)完成写入。
  • 注意:全局正则自带lastIndex属性,每次完成匹配后会记录下一次匹配的起始偏移量,因此处理新URL前必须手动重置为0,否则会出现计数错误甚至漏匹配的问题。
  • 如果你不需要统计所有片段的总次数,而是要分别输出每个片段的匹配次数,只需调整存入数组的结构,把每个片段的单独计数作为单独列插入数组即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 09:12:05