Curl 从命令行下载/导出公共Google电子表格作为TSV?
我有一个公开的(发布的)谷歌电子表格,我正试图以TSV的形式以编程方式下载 在我的浏览器中,当Google登录处于活动状态时,对于某些实际密钥Curl 从命令行下载/导出公共Google电子表格作为TSV?,curl,google-sheets,google-docs-api,google-spreadsheet-api,Curl,Google Sheets,Google Docs Api,Google Spreadsheet Api,我有一个公开的(发布的)谷歌电子表格,我正试图以TSV的形式以编程方式下载 在我的浏览器中,当Google登录处于活动状态时,对于某些实际密钥$key,https://spreadsheets.google.com/feeds/download/spreadsheets/Export?key=$key&exportFormat=tsv工作并生成tsv文件 然而,在我的壳中: curl-L”https://spreadsheets.google.com/feeds/download/spread
$key
,https://spreadsheets.google.com/feeds/download/spreadsheets/Export?key=$key&exportFormat=tsv
工作并生成tsv文件
然而,在我的壳中:
生成一组javascriptcurl-L”https://spreadsheets.google.com/feeds/download/spreadsheets/Export?key=$key&exportFormat=tsv“
还生成一组javascriptcurl-L”https://spreadsheets.google.com/feeds/download/spreadsheets/Export?key=$key&exportFormat=csv“
工作并生成一个csv文件curl-L”https://docs.google.com/spreadsheet/pub?key=$key&single=true&gid=0&output=csv“
生成错误消息curl-L”https://docs.google.com/spreadsheet/pub?key=$key&single=true&gid=0&output=tsv“
wget
产生了类似的结果。)
我该怎么做?到目前为止,我能找到的所有谷歌文档都是针对比简单下载和格式更改更复杂的问题,如果我的问题的解决方案在那里,我还没有找到它。私人文件需要下载OAuth授权凭据。您可以在Google Drive API的指南上阅读更多关于此过程的信息。我发现这是一个令人沮丧的未记录过程。我肯定在某处有记录。。。但我一直没找到 前提是你的谷歌表单是公开发布的。对很多人来说,这不是直觉。(选择文件->发布到Web…) 发布工作表时,将为您提供如下url以进行复制:
https://docs.google.com/spreadsheets/d/1XsfK2TN418FuEstNGG2eI9FmEV-4eY-FnndigHWIhk4/pubhtml
该url是很好的浏览。。。但这不是我想要的可下载的CSV。通过漫长的搜索和反复试验,我得出了以下结论:
curl”https://docs.google.com/spreadsheets/d/1XsfK2TN418FuEstNGG2eI9FmEV-4eY-FnndigHWIhk4/export?gid=0&format=csv“
我觉得这非常有帮助。我希望有人能在评论中加入官方文件的链接,更详细地解释这一点。我的答案是关于如何找到答案 在Chrome浏览器中,导航到您的google文档 在浏览器的右上角,转到三个点->更多工具->开发人员工具 这将打开html。。。调试器 在调试器窗口的顶部,选择网络 现在,在您的文档中,启动下载,因为您正在尝试自动化 在调试器中,它将向您显示发出的任何web请求。第一个新的可能就是你想要的 您应该能够右键单击->复制->复制链接地址 url包含一个ID。我不知道它的用途,但是curl能够下载文档而不需要
希望对您有所帮助。我可以通过shell通过以下方式下载:
wget -O ./filename.csv "LINK"
或
output=tsv
output=csv
要添加到:有一个gid=
参数,允许您选择要查看的工作表(因为CSV和TSV只支持查看一个工作表)。这是一个工作表ID,您可以从每个工作表的URL中获取它
因此,要获得CSV/TSV发布链接,请执行以下操作:
https://docs.google.com/spreadsheets/d/e/{key}/pub?输出=tsv
edit#gid={gid}
结束。这就是你想要的gid
:https://docs.google.com/spreadsheets/d/e/{key}/pub?output=tsv&gid={gid}
在我的文档中,其中一个GID为零。我假设它是某种默认的或第一次创建的工作表。这就解释了为什么上面的一些人使用了
gid=0
,而另一些人却产生了错误(那些没有这样gid的工作表的人……他们可能已经删除了它或其他东西)。看起来像是身份验证问题。尝试注销你的谷歌帐户?(奇怪的是,CSV工作正常,TSV失败。)它不是一个私有文件。不知何故,如果我包括gid=0
,那么我将得到一个页面未找到错误,但如果我不包括它,那么我会得到预期的结果。顺便说一句,gid=0
仍然适合我。但对该评论的投票表明,有时删除它是很重要的。如果我知道答案是可选的/强制的/禁止的,我会更新它。对于GID,请参见下面。如果您返回HTML,则需要将-L
标记添加到curl(curl-L)https://......“
)很好的方法。“网络”选项卡中的链接太多。我似乎已经找到了我想要的——因为我在浏览器上尝试了,并开始下载。但我无法制作“curl{LINK}”下载。当我执行“curl{publushedURL+correctGID}时,我会得到一个“临时重定向”。另外,我可以使用在将文件发布到web后提供的链接下载该文件CSV@Manthan_Admane,我只是用&gid=…
试了一下,它可以作为expe使用
output=tsv
output=csv