如何使用完整XPath获取::before下方div内的元素值?
解决Google Sheets IMPORTXML提取伪元素相关数据的问题
核心原因
Chrome控制台能定位到伪元素(::before/::after)但IMPORTXML无法生效的本质是:
- 控制台访问的是浏览器渲染后的DOM树,包含CSS生成的伪元素内容;
- IMPORTXML仅读取服务器返回的原始HTML源代码,而伪元素属于浏览器动态生成的内容,根本不存在于原始HTML中,所以任何针对伪元素的XPath都会失效。
解决方案
目标页面的光锥数据实际都存储在原始HTML的表格节点中,无需依赖伪元素。以下是几个实用的XPath示例,可直接用于IMPORTXML:
提取所有光锥名称
//table[contains(@class,'wikitable')]/tbody/tr/td[2]/a/text()
对应的IMPORTXML公式:
=IMPORTXML("https://honkai-star-rail.fandom.com/wiki/Light_Cone/List", "//table[contains(@class,'wikitable')]/tbody/tr/td[2]/a/text()")
提取所有光锥稀有度
//table[contains(@class,'wikitable')]/tbody/tr/td[1]/span/@title
对应的IMPORTXML公式:
=IMPORTXML("https://honkai-star-rail.fandom.com/wiki/Light_Cone/List", "//table[contains(@class,'wikitable')]/tbody/tr/td[1]/span/@title")
通用排查步骤
- 打开目标页面,右键选择「查看页面源代码」(而非控制台的Elements标签),找到你需要的数据实际所在的HTML节点;
- 基于原始HTML结构编写XPath,确保路径指向真实存在的元素/属性;
- 将XPath代入IMPORTXML函数测试。
内容的提问来源于stack exchange,提问作者Glynix
相关产品推荐
相关产品推荐

