如何在 Google 表格中找出 IMPORTXML 的正确 xpath - 收到错误?

Posted

技术标签:

【中文标题】如何在 Google 表格中找出 IMPORTXML 的正确 xpath - 收到错误?【英文标题】:How to figure out proper xpath for IMPORTXML in Google Sheets - Receiving An Error? 【发布时间】:2020-07-05 07:17:38 【问题描述】:

我正在尝试在 Google 表格上使用 IMPORTXML 功能。

例如:=IMPORTXML("https://exolyt.com/user/amazonprimevideo/full, XMLPATH) 应返回“1.8K”,即平均视频份额

我使用 Chrome 检查器复制 xpath,这给了我:

/html/body/div[1]/div[1]/div/div/div/div[3]/div[1]/div/div[2]/div/div[1]/div[ 3]/div[6]/div[3]/div[2]

当我在 Google 表格中尝试此操作时,它返回错误:#N/A(导入内容为空)。

附:我愿意通过其他方式将我需要的数据放入谷歌表格,它不必使用 IMPORTXML 函数。

【问题讨论】:

【参考方案1】:

我相信你的目标如下。

您想要检索“平均视频分享”的值。 例如,在这种情况下,1.8K 是您需要的值。

为此,我想提出以下修改公式。

修改公式:

=IMPORTXML(A1,"//div[../div[text()='Avg. video shares']][2]")
在这种情况下,https://exolyt.com/user/amazonprimevideo/full 的 URL 被放到单元格“A1”中。 我使用 //div[../div[text()='Avg. video shares']][2] 作为 xpath。

结果:

注意:

作为其他 xpath,在您的情况下,您也可以使用 /html/body/div[1]/div/div/div/div/div/div[1]/div/div[2]/div/div[1]/div[2]/div[5]/div[3]/div[2] 作为 xpath,如下所示。

  =IMPORTXML(A1,"/html/body/div[1]/div/div/div/div/div/div[1]/div/div[2]/div/div[1]/div[2]/div[5]/div[3]/div[2]")

来自I'm open to other ways to get the data I need into the google sheet, it doesn't have to use the IMPORTXML function.,如果您想使用 Google Apps Script 实现您的目标,您还可以使用以下脚本作为自定义函数。在这种情况下,请将以下脚本复制并粘贴到电子表格的容器绑定脚本中,并将=customFunction() 放入单元格中。这样,1.8K 的值就被检索到了。

  function customFunction() 
    const url = "https://exolyt.com/user/amazonprimevideo/full";
    return UrlFetchApp
      .fetch(url)
      .getContentText()
      .match(/Avg\. video shares<\/div><div .+?>(\w.+?)<\/div>/)[1];
  

在上面修改的公式和示例脚本中,当 URL 发生更改时,可能无法检索到您期望的结果。所以请注意这一点。

参考:

IMPORTXML

【讨论】:

以上是关于如何在 Google 表格中找出 IMPORTXML 的正确 xpath - 收到错误?的主要内容,如果未能解决你的问题,请参考以下文章

无法在Google文档电子表格中找出现值(PV)公式

应用脚本 - 如何将项目(错误率,执行,用户)的输出导入Google表格

如何在WPS表格中找出相同的内容

使用正则表达式查看单元格是不是包含 Google 表格中的表情符号

使用 Google Maps API 查找两个位置之间的路线和距离并将其呈现在表格中

在Google电子表格小工具中,如何写入电子表格?