Google表格-ImportXML函数。接收错误?

时间:2020-07-21 03:58:03

标签: xml google-sheets xml-parsing google-sheets-importxml

我正在尝试在Google表格上使用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表格中尝试此操作时,它返回错误:#N / A(导入内容为空)。

P.S。我愿意采用其他方式将所需的数据获取到Google工作表中,而不必使用IMPORTXML函数。

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

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

这工作了好一阵子,但此后就停止了工作。

1 个答案:

答案 0 :(得分:0)

问题和解决方法:

我再次检查了我的建议。这样,我可以理解2020-07-21之后HTML数据已更改,因为当我在2020-07-21上发布此数据时,我可以确认xpath起作用。现在,通过此更改,我确认我的提案无法再使用。

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

用法:

  1. 打开Goog​​le Spreadsheet的脚本编辑器。

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

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

    • 此功能用作自定义功能。

通过此流程,将检索值。

注意:

  • 我不确定这可以使用多长时间。更改HTML结构后,可能无法使用此解决方法。请注意这一点。
  • 将此脚本用于其他URL时,可能无法使用此替代方法。请注意这一点。

参考文献: