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

如何用Google Sheets importXML提取HTML元素的style属性值?

Google Sheets importXML提取style属性内图片URL的解决办法

问题原因

你能通过/html/body/div[2]/div[2]/div/a/div[1]/div/@class正常获取class属性,但同路径下/@style返回N/A,主要是因为Google Sheets的importXML对包含转义字符(如")的style属性解析存在异常,或者目标元素是动态渲染导致无法直接抓取。

解决步骤

1. 先获取style属性内容

尝试用class定位目标div来获取style,替代绝对路径XPath,兼容性更好:

//div[@class='lazy']/@style

如果直接用importXML还是返回N/A,改用IMPORTHTML抓取元素内容:

=IMPORTHTML("https://www.etebg.net/ro/search/p1/C%C4%83utare.html?q=%25%25", "xpath", "//div[@class='lazy']")

2. 从style中提取图片URL

用REGEXEXTRACT匹配URL部分,把下面的公式里的A1替换成你存放style内容的单元格:

=REGEXEXTRACT(A1, "background-image: url\("(.*?)"\)")

也可以直接组合成一个公式:

=REGEXEXTRACT(IMPORTXML("https://www.etebg.net/ro/search/p1/C%C4%83utare.html?q=%25%25", "//div[@class='lazy']/@style"), "background-image: url\("(.*?)"\)")

3. 动态内容的备选方案

如果以上方法都失效,说明内容是JS动态渲染的,import系列函数抓不到,用Google Apps Script解决:

  1. 打开Google Sheets,点击「扩展程序」→「Apps脚本」
  2. 粘贴以下代码:
function getLazyImageUrls() {
  const targetUrl = "https://www.etebg.net/ro/search/p1/C%C4%83utare.html?q=%25%25";
  const pageContent = UrlFetchApp.fetch(targetUrl).getContentText();
  const urlPattern = /background-image: url\("(.*?)"\)/g;
  const matches = pageContent.match(urlPattern);
  return matches ? matches.map(item => item.replace(/background-image: url\("(.*?)"\)/, "$1")) : [];
}
  1. 保存脚本后,回到表格,在单元格输入=getLazyImageUrls()即可获取所有匹配的图片URL。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 00:30:57