Xpath 用工作表刮取数据会抛出错误

Xpath 用工作表刮取数据会抛出错误,xpath,web-scraping,google-sheets,google-sheets-formula,google-sheets-importxml,Xpath,Web Scraping,Google Sheets,Google Sheets Formula,Google Sheets Importxml,我得到一个错误: 导入的内容为空 当我像这样使用importxml时: =IMPORTXML("https://pvpoke.com/rankings/all/1500/overall/","//div[@class='rankings-container clear']/div/div[2]/span[2]") 我已经在Xpath助手中测试了我的查询,得到了我想要的确切结果。只有当它将数据发送到google sheets时,一切都不起作用。您试图抓取的网站处于JavaScript控制之下。G

我得到一个错误:

导入的内容为空

当我像这样使用importxml时:

=IMPORTXML("https://pvpoke.com/rankings/all/1500/overall/","//div[@class='rankings-container clear']/div/div[2]/span[2]")

我已经在Xpath助手中测试了我的查询,得到了我想要的确切结果。只有当它将数据发送到google sheets时,一切都不起作用。

您试图抓取的网站处于JavaScript控制之下。Google Sheets无法导入JS元素。您可以简单地通过禁用给定站点的JavaScript来测试这一点,并且您剩下的内容可以被删除。在您的情况下,仅在此处看到:


备用选项。使用自定义脚本直接加载JSON数据

使用GoogleSheets导入JSON数据的脚本(归功于Paul Gambill):

和数据:

https://pvpoke.com/data/all/overall/rankings-1500.json?v=1.14.5.2
输出:

编辑

要仅输出口袋妖怪的名称,请执行以下操作:

=UNIQUE(QUERY(ImportJSON("https://pvpoke.com/data/all/overall/rankings-1500.json?v=1.14.5.2");"SELECT Col1";1))

我听说MS Excel可以通过VBA脚本实现—从未测试过,因为我可以添加自己的查询“//div[@class='rankings-container clear']]/div/div[2]/span[2]”,而不是导入每一条JSON。也谢谢你分享JSON到GS脚本。你可以用谷歌表单中的查询过滤JSON,只保留口袋妖怪的名字。帖子已编辑。将查询和选项添加到url时,代码看起来如何?对不起,如果我问的是基本问题,我很没经验。我不确定我是否能理解这个问题。只需查看我答案的编辑,然后将粘贴复制到谷歌工作表。