如何在Google Apps Script中提取HTML文本内的polygonSeries.data变量值
实现方案
你可以通过正则匹配加JSON转换的方式提取数据,比逐行解析更稳定高效,实现逻辑如下:
- 首先用正则一次性抓取
polygonSeries.data赋值的完整数组段,避免逐行判断的冗余 - 清理数组中
am4core.color()这类JS语法,转为标准JSON格式 - 直接用
JSON.parse转为GAS可直接操作的对象
示例代码
function extractPolygonData() { // 替换为你的请求逻辑 const url = "目标页面URL"; const requestOptions = {}; // 你的原有请求配置 const pageContent = UrlFetchApp.fetch(url, requestOptions).getContentText(); // 匹配polygonSeries.data的完整数组内容,s修饰符支持跨行匹配 const dataReg = /polygonSeries\.data\s*=\s*(\[.*?\]);/s; const matchResult = pageContent.match(dataReg); if (!matchResult) return []; // 替换am4core.color调用为纯十六进制色值字符串,适配JSON格式要求 let rawData = matchResult[1].replace(/am4core\.color\("(#[\dA-Fa-f]{6})"\)/g, '"$1"'); // 转为GAS中可直接使用的数组对象 const polygonSeriesData = JSON.parse(rawData); // 测试输出,可自行删除 console.log(polygonSeriesData); return polygonSeriesData; }
方案优势
- 不需要逐行遍历HTML,执行效率更高
- 正则匹配兼容代码中的空格、换行变化,只要变量赋值的结构不变就不会失效
- 代码逻辑精简,维护成本低
内容的提问来源于stack exchange,提问作者Radek
相关产品推荐
相关产品推荐

