Google Sheets——ImportXML函数.接收错误



我正在尝试在Google Sheets上使用IMPORTXML函数。

例如:

=IMPORTXML("https://www.tiktok.com/@charlidamelio?lang=en", XMLPATH) 

应返回";72.6M〃;

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

/html/body/div[1]/div/div[2]/div/div[1]/div/header/h2[1]/strong[2]

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

附言:我对其他方法持开放态度,可以将我需要的数据输入谷歌表单,它不必使用IMPORTXML函数。

我不久前问了这个问题,有人给了我以下解决方案:

=REGEXEXTRACT(IMPORTXML(C2,"//script[@id='__NEXT_DATA__']"),"followerCount"":(d+)")

这在一段时间内效果很好,但后来就停止了。

问题和解决方法:

我再次核对了我的提议。通过这一点,我可以理解HTML数据在2020-07-21之后发生了更改,因为当我在2020-07-11发布这一消息时,我可以确认xpath有效。现在,通过这一改变,我确认我的这一提议不能再使用了。

因此,为了检索您期望的值,作为当前的解决方法,我建议使用Google应用程序脚本。在当前阶段,似乎当使用谷歌应用程序脚本时,可以检索该值。

用法:

  1. 打开Google电子表格的脚本编辑器。

  2. 将以下脚本复制并粘贴到脚本编辑器中,然后保存该脚本。

    function SAMPLE() {
    var url = "https://www.tiktok.com/@charlidamelio?lang=en";
    return UrlFetchApp
    .fetch(url)
    .getContentText()
    .match(/<meta name="description"[sSw]+?>/)[0]
    .match(/([.w]+?) Fans/)[1];
    }
    
  3. 回到Google电子表格,将=SAMPLE()放在一个单元格中。

    • 此函数用作自定义函数

通过此流,检索值。

注:

  • 我不确定这个能用多久。当HTML结构发生更改时,可能无法使用此解决方法。请小心
  • 当您将此脚本用于其他URL时,可能无法使用此解决方法。请注意这一点

参考文献:

  • 谷歌表单中的自定义函数
  • 类UrlFetchApp

最新更新