我有一个公开的(发布的)谷歌电子表格,我试图下载程序在TSV的形式。
在我的浏览器中,使用Google登录,对于一些实际的关键字$key
,https://spreadsheets.google.com/feeds/download/spreadsheets/Export?key=$key&exportFormat=tsv
工作并生成一个TSV文件。
然而在我的壳里:
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文档都是针对复杂得多的问题,而不是简单的下载和格式更改,如果我的问题的解决方案就在那里的某个地方,我还没有找到它。
5条答案
按热度按时间dwbf0jvd1#
我发现这是令人沮丧的无证记录。我肯定它的文件某处...但我从来没有找到它。
前提是你的谷歌工作表是公开发布的。这对很多人来说并不直观。(选择文件-〉发布到Web...)
当您发布图纸时,系统会提供类似以下的URL供您复制:
https://docs.google.com/spreadsheets/d/1XsfK2TN418FuEstNGG2eI9FmEV-4eY-FnndigHWIhk4/pubhtml
这个网址很好浏览......但它不是我想要的可下载的CSV。通过长时间的搜索和反复试验,我得到了这个:
curl -L "https://docs.google.com/spreadsheets/d/1XsfK2TN418FuEstNGG2eI9FmEV-4eY-FnndigHWIhk4/export?gid=0&format=csv" > ./my_local.csv
个请注意,
gid=0
* 通常 * 是正确的,因为它似乎是初始选项卡的默认ID。但它 * 不一定 * 正确。有关gid
的更多详细信息,请参见下面的答案。我发现这个例子非常有帮助。我希望有人评论并提供官方文档的链接,更详细地解释这一点。
cgh8pdjw2#
我可以通过shell以这种方式下载:
1.文件=〉发布到Web
1.选择要下载的工作表和格式。
1.点击发布
1.复制链接
1.然后使用它:
或
在我的情况下,它和预期的一样工作。
另外,我认为它发布了所有的格式,这样你就可以选择下载什么,改变URL的最后一部分,而不必取消发布和重新发布:
xvw2m8pv3#
要添加到answer written by @mdahlman,请执行以下操作:有一个
gid=<value>
参数可以让你选择要查看的工作表(因为CSV和TSV只支持查看一个工作表)。这是一个工作表ID,你可以从每个工作表的URL中选择它。因此,要获得CSV/TSV发布链接,请执行以下操作:
1.发布文档以获取类似
https://docs.google.com/spreadsheets/d/e/{key}/pub?output=tsv
的URL。1.然后,针对每个电子表格:
1.点击它。
1.在浏览器的地址栏中查看它的URL。它将以
edit#gid={gid}
结尾。这就是你想要的。1.根据步骤1中的URL和2.2中的
gid
创建您的URL:https://docs.google.com/spreadsheets/d/e/{key}/pub?output=tsv&gid={gid}
.GID不是按顺序排列的(0,1,2,......)。它们是很长的数字(我认为是9位数),看起来没有直接的顺序或任何东西,所以它们实际上更像是表键,而不是人们所期望的“id”。
在我的文档中,有一个GID是零。我假设它是某种默认的或第一次创建的工作表。这就解释了为什么
gid=0
对上面的一些人有效,但对其他人却产生了错误(那些没有这样GID的工作表的人...他们可能已经删除了它或其他什么)。9rnv2umw4#
我的回答是关于如何找到答案。
在Chrome浏览器中,导航到您的Google文档。
在浏览器的右上角,转到三个点-〉更多工具-〉开发者工具
这将打开html...调试器。
在调试器窗口的顶部,选择“网络”。
现在,在您的文档中,启动下载,因为您正在尝试自动化。
在调试器中,它会向你显示所有的web请求,第一个新的请求可能就是你想要的。
您应该能够右键单击-〉复制-〉复制链接地址
网址包含一个ID。我不知道它是干什么用的,但curl可以在没有ID的情况下下载文档。
希望对你有帮助。
wswtfjt75#
这是我沿着创建的参数列表: