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

如何在Google Apps Script中创建文档片段实现HTML字符串DOM查询

Google Apps Script 解析HTML字符串解决方案

在Google Apps Script(GAS)的服务端运行环境中,不存在浏览器的document上下文,因此无法使用document.createDocumentFragment()、document.createElement()这类原生DOM方法处理抓取得到的HTML字符串,可采用以下方案解决:


最优方案:使用适配GAS的Cheerio库

Cheerio是jQuery核心功能的轻量服务端实现,专门用于无浏览器环境下的HTML解析,支持几乎所有常用CSS选择器查询语法,学习成本极低,是该场景的首选方案。

引入步骤

  • 打开你的GAS项目,点击左侧菜单栏「库」右侧的+号
  • 在脚本ID输入框填入 1ReeQ6WO8kKNxoaA_O0XEQ589cIrRvEBA9qcWpNqdOP17i47u6N9M5Xh0,点击「查找」
  • 选择最新版本,将标识符设置为Cheerio,点击「添加」完成引入

使用示例

function parseHtmlAndWriteToSheet() {
  // 抓取目标网页获取HTML字符串
  const targetUrl = "替换为你要抓取的网页地址";
  const htmlContent = UrlFetchApp.fetch(targetUrl).getContentText();

  // 加载HTML到Cheerio实例
  const $ = Cheerio.load(htmlContent);

  // 用CSS选择器提取数据,示例:提取所有class为article-title的元素文本
  const result = [];
  $(".article-title").each(function () {
    result.push([$(this).text().trim()]);
  });

  // 将结果写入当前激活的表格
  const activeSheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  activeSheet.getRange(1, 1, result.length, 1).setValues(result);
}

替代方案(仅适合极简场景)

如果你的需求非常简单、目标HTML结构固定无变化,也可以使用正则匹配提取内容,但该方法容错性极低,HTML结构稍有调整就会失效,不推荐复杂场景使用。
示例:提取所有<span class="price">标签内的内容:

const htmlContent = "替换为你抓取得到的HTML字符串";
const priceReg = /<span class="price">([\s\S]*?)<\/span>/g;
const priceList = [];
let matchResult;
while((matchResult = priceReg.exec(htmlContent)) !== null) {
  priceList.push([matchResult[1].trim()]);
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 03:15:09