Aar*_*ies 17 curl google-sheets google-docs-api google-spreadsheet-api
我有一个公开(已发布)的Google电子表格,我试图以TSV形式以编程方式下载.
在我的浏览器中,Google登录处于活动状态,对于某些实际密钥$key
,https://spreadsheets.google.com/feeds/download/spreadsheets/Export?key=$key&exportFormat=tsv
可以工作并生成TSV文件.
但是在我的shell中:
curl -L "https://spreadsheets.google.com/feeds/download/spreadsheets/Export?key=$key&exportFormat=tsv"
产生一堆javascript.curl -L "https://spreadsheets.google.com/feeds/download/spreadsheets/Export?key=$key&exportFormat=csv"
还会产生一堆javascript.curl -L "https://docs.google.com/spreadsheet/pub?key=$key&single=true&gid=0&output=csv"
工作并生成CSV文件.curl -L "https://docs.google.com/spreadsheet/pub?key=$key&single=true&gid=0&output=tsv"
产生错误信息.(尝试使用wget
产生类似的结果.)
我该如何工作?到目前为止,我能够找到的所有Google文档都面向更复杂的问题,而不是简单的下载和格式更改,如果我的问题的解决方案在某处,我还没有找到它.
mda*_*man 27
我发现这是令人沮丧的无证件.我确定它已在某处记录......但我从未发现它.
前提是您的Google表格是公开发布的.这对许多人来说并不直观.(选择文件 - >发布到Web ...)
发布工作表时,您将获得一个这样的URL来复制:
https://docs.google.com/spreadsheets/d/1XsfK2TN418FuEstNGG2eI9FmEV-4eY-FnndigHWIhk4/pubhtml
这个网址可以很好地浏览......但它不是我想要的可下载的CSV.通过搜索和反复试验的长时间组合,我想出了这个:
curl "https://docs.google.com/spreadsheets/d/1XsfK2TN418FuEstNGG2eI9FmEV-4eY-FnndigHWIhk4/export?gid=0&format=csv"
我觉得它非常有帮助.我希望有人评论官方文档的链接,更详细地解释这一点.
小智 7
我可以通过这种方式通过shell下载:
然后使用它:
wget -O ./filename.csv "LINK"
Run Code Online (Sandbox Code Playgroud)
或者
curl -L "LINK" > ./filename.csv
Run Code Online (Sandbox Code Playgroud)就我而言,它按预期工作。
另外,我认为它发布了所有格式,因此您可以选择要下载的内容,更改 URL 的最后一部分,而无需取消发布并重新发布:
output=tsv
output=csv
Run Code Online (Sandbox Code Playgroud)
添加到@mdahlman 写的答案:有一个gid=<value>
参数可以让您选择要查看的工作表(因为 CSV 和 TSV 支持仅查看一张工作表)。这是一个工作表 ID,您可以从每个工作表的 URL 中获取它。
因此,要获取 CSV/TSV 发布链接,请执行以下操作:
发布文档以获取类似 的 URL https://docs.google.com/spreadsheets/d/e/{key}/pub?output=tsv
。
然后对于每个电子表格:
点击它。
在浏览器的地址栏中查看其 URL。它将以 结束edit#gid={gid}
。那就是你想要的。
根据步骤 1. 和gid
2.2. 中的 URL 创建您的 URL https://docs.google.com/spreadsheets/d/e/{key}/pub?output=tsv&gid={gid}
: 。
GID 不按顺序排列(0、1、2...)。它们是很长的数字(对我来说是 9 位数字),看起来没有直接的顺序或任何东西,所以它们实际上更像是表键,而不是人们所期望的“id”。
在我的文档中,其中一个 GID 为零。我假设它是某种默认工作表或第一个创建的工作表。这解释了为什么gid=0
对上面的某些人有效,但对其他人却产生了错误(那些没有具有此类 GID 的工作表的人......他们可能已经删除了它或其他东西)。
归档时间: |
|
查看次数: |
9761 次 |
最近记录: |