使用ImportXML获取Nykaa Fashion商品数量报错“Imported Content Empty”求助
问题原因
Nykaa Fashion的页面采用客户端动态渲染技术,页面内容是通过JavaScript在浏览器加载后生成的。而Google Sheets的IMPORTXML只能抓取页面初始加载的静态HTML代码,你使用的XPath指向的是动态生成的DOM元素,在静态源码中并不存在,因此返回“Imported Content Empty”错误。
解决方案
1. 抓取静态源码中的JSON数据
目标页面的商品数量信息藏在静态源码的全局JSON变量里,可通过IMPORTXML定位到包含该数据的script标签:
=IMPORTXML("https://www.nykaafashion.com/designers/puma/c/4886?searchType=SearchedFromHistory&internalSearchTerm=Puma","//script[contains(text(),'totalProducts')]")
2. 提取商品数量数值
用REGEXEXTRACT函数从抓取到的JSON文本中提取商品总数,组合公式如下:
=REGEXEXTRACT(IMPORTXML("https://www.nykaafashion.com/designers/puma/c/4886?searchType=SearchedFromHistory&internalSearchTerm=Puma","//script[contains(text(),'totalProducts')]"),"totalProducts"[:\s]*(\d+))
注意事项
- 若后续网站更新源码结构,需重新查看页面源代码,找到包含
totalProducts的新位置调整XPath。 - Google Sheets的
IMPORTXML有请求频率限制,频繁请求可能被网站临时拦截,建议间隔操作。
内容的提问来源于stack exchange,提问作者Biswajit Samaddar
相关产品推荐
相关产品推荐

