Google apps script 在Google工作表上使用IfError导入TXLM
我想感谢大家在这个网站上的帮助,这意味着很多 我正在尝试将Spotify播放列表中的喜欢/关注者导入Google Sheets。似乎不同的播放列表有不同的XPath 我可以使用以下代码提取大多数喜欢/关注者的作品:B24是URL =IndexRegExtractFerrorQueryArray_ConstraintImportDataB24500,5,选择Col5,其中Col4包含“追随者”,0,QUERYARRAY_ConstraintImportDataB24500,7,选择Col7,其中Col6包含“追随者”,0,\d+*1 但是,某些播放列表链接会出现空输出。 例子: 工作模式的示例: 老实说,我不知道如何添加第三个参数,我一直在盲目地改变列数,看看什么是有效的-没有运气。任何关于如何确定将更改为什么样的col/任何指导的想法都将非常有用 谢谢 问题和解决方法: 当我从两个URL看到HTML时,我认为在本例中,您要检索的值可以从HTML中包含的JSON数据中检索。但不幸的是,JSON数据很大。因此,当使用IMPORTXML时,由于数据大小的原因会发生错误。因此,在这个答案中,我想建议使用一个自定义函数使用谷歌应用程序脚本 示例脚本: 请将以下谷歌应用程序脚本复制并粘贴到谷歌电子表格的脚本编辑器中。并且,请将=SAMPLEurl放入单元格。通过此操作,将返回追随者的值Google apps script 在Google工作表上使用IfError导入TXLM,google-apps-script,google-sheets,google-sheets-formula,Google Apps Script,Google Sheets,Google Sheets Formula,我想感谢大家在这个网站上的帮助,这意味着很多 我正在尝试将Spotify播放列表中的喜欢/关注者导入Google Sheets。似乎不同的播放列表有不同的XPath 我可以使用以下代码提取大多数喜欢/关注者的作品:B24是URL =IndexRegExtractFerrorQueryArray_ConstraintImportDataB24500,5,选择Col5,其中Col4包含“追随者”,0,QUERYARRAY_ConstraintImportDataB24500,7,选择Col7,其中C
function SAMPLE(url) {
const res = UrlFetchApp.fetch(url).getContentText();
const v = res.replace(/&/g, "&").match(/Spotify\.Entity \=([\s\S\w]+?);/);
return v && v.length == 2 ? JSON.parse(v[1].trim()).followers.total : "Value cannot be retrieved.";
}
结果:
当上述脚本用于2个URL时,将获得以下结果。在这种情况下,以下自定义公式将分别放在单元格A1和A2中
=SAMPLE("https://open.spotify.com/playlist/5aSO2lT7sVPKut6F9L6IAc")
=SAMPLE("https://open.spotify.com/playlist/7qvQVDnLe4asawpZqYhKMQ")
注:
此示例脚本适用于您问题中的URL。因此,当您测试其他URL时,脚本可能无法使用。而且,当在服务器端更改HTML的结构时,脚本可能无法使用。所以请小心这个。
参考资料:
与我的所有链接完美配合。感谢您的深入回复和推荐!我不知道这是可能的-非常感谢@罗伯特·布鲁克斯谢谢你的回复。我很高兴你的问题解决了。也谢谢你。顺便说一下,在这个答案中,使用了谷歌应用程序脚本。因此,我在问题中添加了一个google apps脚本标记。一些链接输入了一个错误SyntaxError:JSON输入行4的意外结尾。这是因为链接吗?或者我能做些什么。这是产生错误的链接中的一个链接。再次感谢你@罗伯特·布鲁克斯给您带来的不便,我深表歉意。不幸的是,我的答案是你的问题中的两个URL。因此,我认为这可能无法用于您期望的所有URL。对此我深表歉意。当您想要从其他URL检索值时,我认为需要分析每个HTML数据。那么在这种情况下,你能把它作为新问题发布吗?如果您有多个要检索的URL,请将它们包含到新问题中。因为此示例脚本适用于您的2个URL。如果你能合作解决你的新问题,我很高兴。你能合作解决吗?谢谢你所做的一切-这是新的帖子!: