我正在尝试在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应用程序脚本。在当前阶段,似乎当使用谷歌应用程序脚本时,可以检索该值。
用法:
-
打开Google电子表格的脚本编辑器。
-
将以下脚本复制并粘贴到脚本编辑器中,然后保存该脚本。
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]; }
-
回到Google电子表格,将
=SAMPLE()
放在一个单元格中。- 此函数用作自定义函数
通过此流,检索值。
注:
- 我不确定这个能用多久。当HTML结构发生更改时,可能无法使用此解决方法。请小心
- 当您将此脚本用于其他URL时,可能无法使用此解决方法。请注意这一点
参考文献:
- 谷歌表单中的自定义函数
- 类UrlFetchApp