将未发布的Google电子表格下载为CSV格式

时间:2012-05-24 03:22:33

标签: csv google-sheets

我的Google电子表格尚未公开,但只有拥有访问权限链接的人才能使用。虽然我可以从我的浏览器访问CSV格式的数据,即使我没有登录我的Google帐户(也就是说,允许匿名访问),我无法使用wget从命令行下载数据,用于instante 。我找到了几个网页,其中包含一些创建下载URL的说明,但到目前为止,我还没有成功。是否有一种简单直接的方法,或者我是否必须使用某些Google数据库来访问这些数据?

5 个答案:

答案 0 :(得分:24)

也许我没有正确理解你要做的事情,但我找到了一个对我来说很好的解决方案in this article

在文章中,作者为电子表格创建了一个下载链接作为XLS文件(使用“&amp; output = xls”),但我尝试了“&amp; output = csv”并成功下载了正确的CSV文件。< / p>

以下是我的“下载测试电子表格”的下载链接,其构造方式与文章作者建议的方式相同,但“csv”替换为“xls”:

https://docs.google.com/spreadsheet/ccc?key=0At2sqNEgxTf3dEt5SXBTemZZM1gzQy1vLVFNRnludHc&output=csv

该链接是匿名的(即“有链接可以查看的任何人”),我在没有登录我的Google帐户的情况下下载了该链接。我承认我没有使用wget来做它(我只是使用了浏览器 - 我没有安装wget),但我想不出wget不能正常工作的原因。

实际上,我只是抓了一份wget并试了一下,它也正确地下载了文件:

% wget --no-check-certificate --output-document=test.csv 'https://docs.google.com/spreadsheet/ccc?key=0At2sqNEgxTf3dEt5SXBTemZZM1gzQy1vLVFNRnludHc&output=csv'

< bla bla bla, reams of output from wget >

% cat test.csv
Foo,Bar,Baz
1,2,3
4,5,6

所以你去......


更新2018年

正如@AndyMortimer所评论的那样,新的下载网址https://docs.google.com/spreadsheets/d/<KEY>/export?gid=<GID>&format=csv
其中<KEY><GID>可以从您的导航网址https://docs.google.com/spreadsheets/d/<KEY>/edit#gid=<GID>

PS:电子表格可能包含多个工作簿, GID 是所需的工作簿ID。一个工作簿电子表格通常有gid=0,但是如果你添加更多,他们将有随机数字( GID 即使更改了tab-order也可以预先设定。)

因此,使用wget和相同的电子表格

   wget --no-check-certificate -O test.csv \
    'https://docs.google.com/spreadsheets/d/0At2sqNEgxTf3dEt5SXBTemZZM1gzQy1vLVFNRnludHc/export?gid=0&format=csv'

答案 1 :(得分:14)

我可以从公开的电子表格网址中获得wget能力的网址,如下所示:

https://docs.google.com/spreadsheets/d/LONG_ID_STRING/edit?usp=sharing

通过将它们更改为:

https://docs.google.com/spreadsheets/d/LONG_ID_STRING/export?format=csv

这样我的wget命令就像:

$ wget "https://docs.google.com/spreadsheets/d/LONG_ID_STRING/export?format=csv"

确保首先使用右上方的蓝色“分享”按钮分享电子表格,然后“获取可共享的链接”。

答案 2 :(得分:0)

现在我可以回答问题了,所以我会保留它的答案(从我之前的评论中粘贴)。

我的问题是我没有正确存储cookie。那时,我正在使用Python程序尝试下载它。这解决了我报告的问题:

# Cookie management 
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(CookieJar())) 
csv_data =  csv.reader(opener.open(url))

答案 3 :(得分:0)

答案 4 :(得分:-1)

进入这个问题并尝试了一些解决方案。没有人工作得很好所以我写了这个卷曲似乎做了这个工作。您需要与拥有相关链接的任何人共享您的Google电子表格

curl -o /path/to/file/you/want/csv/to/go.csv 'https://docs.google.com/spreadsheet/ccc?key=[the-id-of-your-spreadsheet]&output=csv' -L

-L这里的诀窍是谷歌经常移动csv但会发送一个重定向链接。 -L告诉curl关注重定向,直到它落在文件上。

您可以通过在Google云端硬盘中打开并查看网址来查找电子表格的id

https://docs.google.com/spreadsheets/d/[idwillbehere]/edit#gid=0