Google 工作表 importXML Returns 空值

Google Sheets importXML Returns Empty Value

我正在尝试使用 google sheet 来抓取该网站 (https://kamadan.gwtoolbox.com/),花费 material 我玩的游戏的费用。有两张桌子; "Common Materials" 和 "Rare Materials" 在右上角的下拉列表中。随着价格的更新,我正试图提取两者的价值。我复制了完整的 Xpath 并在 sheet.

上的空单元格中使用了下面的函数
=importxml("https://kamadan.gwtoolbox.com/","/html/body/div[2]/div[1]/div/div[2]/table/tbody")

这 return 是一个 #N/A 错误,表示它 return 是一个空值。

我也用常规的 xpath 试过了...

=importxml("https://kamadan.gwtoolbox.com/","//*[@id='trader-overlay-items']")

这只是 return 一个空白单元格。我还通过 chrome 对祖先使用检查功能尝试了这两种方法,并且 children 他们 return 上述两个错误中的任何一个。

抱歉,如果这真的很简单。我对 Xpaths 或 html 一点都不熟悉。我主要涉猎 VBA excel.

答案:

IMPORTXML 无法检索由脚本填充的数据,因此无法使用此公式从此 table 检索数据。

更多信息:

正如您已经提到的,您可以尝试使用以下方法直接从 table 获取数据:

=IMPORTXML("https://kamadan.gwtoolbox.com/","//table[@id='trader-overlay-items']")

这只是一个空白单元格。

我更进一步,尝试通过在页面上的 HTML 元素上调用 IMPORTXML 来对其进行逆向工程,步骤如下:

=IMPORTXML("https://kamadan.gwtoolbox.com/","html")
=IMPORTXML("https://kamadan.gwtoolbox.com/","html/body")
=IMPORTXML("https://kamadan.gwtoolbox.com/","html/body/div[1]")
=IMPORTXML("https://kamadan.gwtoolbox.com/","html/body/div[1]/div[0]")
...

html/body/div[1]/div[0] 是第一个没有导入内容的路径,从导入 html/body 可以看出,完整的正文不包含信息,只有它的模板 - 在单元格 B1 我们参考了 'Common materials' 和 'Rare materials':

并且在 D1 中,我们开始看到 JavaScript 和 JSON 对象未被 IMPORTXML 调用,因此无法检索其结果:

如您所见,如果您在网站上禁用 JavaScript,实际上几乎没有任何内容呈现,因此无法使用 IMPORTXML:

获得

参考文献: