【发布时间】:2020-01-10 04:01:03
【问题描述】:
我一直在尝试抓取我在 Google 相册上公开共享的相册:共享相册会提供一个格式为 photos.app.goo.gl/{SOME_ID} 的链接。目标是能够检索单个照片 URL(不会过期的 URL,遵循 lh3.googleusercontent.com 格式,然后可以嵌入到标签内的任何其他网站上)。
我想在 Google Apps 脚本中执行此操作并尝试了以下方法:
var response = UrlFetchApp.fetch("https://photos.app.goo.gl/{SOME_ID}");
Logger.log(response.getContentText());
但是,响应没有显示任何图像,就好像页面需要再加载一些一样,即使我在一张只有 2 张照片的相册上进行测试。如果我手动检查页面,我可以清楚地看到沿 lh3.googleusercontent.com 格式的图像 + 图像链接。我应该对我的获取请求进行哪些更改?
我见过使用 Axios 的其他实现(在 Apps 脚本之外)设法获取我想要的 URL,但还没有找到将 Axios 库导入 Apps 脚本的方法。
【问题讨论】:
-
对于 Google 延迟加载媒体资源,我绝对不会感到震惊。您将需要使用 API 或其他一些实际呈现网页并等待网络活动解决的解决方案。
-
哦,我同意你关于延迟加载以及它为什么有意义的问题。我只是不知道如何准确地按照您所说的去做,等待网络活动解决——通过 fetch 或 Axios(如果是 Axios,那么如何将库导入 Apps 脚本)。再次感谢!
-
你应该链接你见过的其他解决方案。至于告诉 UrlFetch 在页面上“等待”,您不能。至于使用 Apps Script .gs 文件中的其他请求库,您不能。您可以尝试使用客户端 HTML 解决方案,您可以在其中构建自己的应用程序脚本托管网页并在其 JS 中,可以通过
<script>标签使用或引用其他库,但看不到这些其他解决方案我不能说这种方法是否可行。 -
当然:我看到的两个选项是 (1) medium.com/@ValentinHervieu/… (2) publicalbum.org/blog/embedding-google-photos-albums(参见“创建嵌入代码”)
标签: google-apps-script axios google-photos