0

我想下载只能通过登录 Google 访问的 Google 站点的所有页面的 HTML。Google 不为新的 Google 协作平台提供 API(来源)。更复杂的是,我的 Google 登录要求2SV

我尝试在 Firefox 中进行身份验证,通过 Firefox 扩展程序cookies.txt保存我的 cookie ,然后使用 wget:

wget \
    --load-cookies=cookies.txt \
    --no-host-directories \
    --no-directories \
    --recursive \
    --accept '*.html' \
    https://sites.google.com/a/example.com/the-website-i-need/

结果只是一个谷歌登录页面。

我还通过cliget 插件在 Firefox 中进行了尝试,它可以生成一个 wget 命令,相当于 Firefox 用于下载的功能。我的想法是将递归选项添加到生成的命令中。但是,即使在将 Google 站点的根页面保存为 .html 文件之后,该插件也只会报告“此会话没有下载”。然后我开始从谷歌网站下载一个 PDF 文件,这确实触发了 cliget 插件。然而,产生的 wget 命令导致了302 Moved Temporarilywget 忠实地遵循,但这个过程重复了,直到最后 wget 放弃了20 redirections exceeded

这可以通过 OAuth 或其他一些身份验证方法来完成吗?

相关:使用 curl + Bearer Token 访问非公共 Google 站点页面

4

1 回答 1

1

我终于找到了一种方法来做到这一点。Google Takeout 允许您(理论上)下载您的所有 Google 数据,包括 Google 协作平台。

有一些限制:。

  • 由于未知原因,它不适用于经典的 Google 协作平台。这些数据根本不在 Google 提供的下载中,尽管 Google 表示它是受支持的。这可能是一个错误。它在新的 Google 协作平台上运行良好。
  • 据我所知,没有自动化的方法可以做到这一点。您必须完成 Google Takeout 步骤。但是,对于一次性导出,这应该不是问题。
  • 如果您使用的是 Google G Suite,您的管理员可能已禁用 Google 导出。试试看,但如果说“您没有启用可以导出数据的服务”,您需要与您的 G Suite 管理员合作。

简短版

  • 在 Google Drive 中,将您的 Google Site 移动到顶级文件夹
  • https://takeout.google.com/
  • 在 Google Drive 下,选择上面使用的文件夹
  • 出口

详细版本

于 2020-06-10T17:56:33.990 回答