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

问题描述 投票:0回答:4

我有一个尚未公开的Google电子表格,当我问这个问题时,我不明白Python如何处理cookie。现在一切都很好。法学硕士,去磅沙吧。

csv google-sheets
4个回答
29
投票

也许我没有正确理解你想要做什么,但我在这篇文章中找到了一个解决方案,它对我来说效果很好。

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

这是我的“下载测试电子表格”的下载链接,按照文章作者建议的方式构建,但用“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 所评论的,新的

下载 URL 
https://docs.google.com/spreadsheets/d/<KEY>/export?gid=<GID>&format=csv

 
,其中
<KEY>
<GID>
 可以从您的 
导航 URL 获取, 
https://docs.google.com/spreadsheets/d/<KEY>/edit#gid=<GID>


PS:电子表格可能有多个工作簿,

GID是所需的工作簿ID。一个工作簿电子表格通常具有 gid=0

,但如果添加更多,它们将具有随机数(即使更改 Tab 键顺序,
GID 也会保留)。

因此,使用

wget

 和相同的电子表格,

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

20
投票
我可以从公共电子表格 URL 中获取可支持

wget

 的 URL,如下所示:

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"

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


0
投票
要访问其他选项卡,您需要单击并获取该选项卡的 gid,因此:

https://docs.google.com/spreadsheets/d/1GxmL3bbejjGx-Ji7kzsnZLzkSaMrfX5WwgRAvvqfqpw/pubhtml?widget=true&amp%3Bheaders=false#gid=2120833204


变成:

https://docs.google.com/spreadsheets/d/1GxmL3bbejjGx-Ji7kzsnZLzkSaMrfX5WwgRAvvqfqpw/export?format=csv&id=1GxmL3bbejjGx-Ji7kzsnZLzkSaMrfX5WwgRAvvqfqpw&gid=2120833204


    


-1
投票
遇到这个问题并尝试了一些解决方案。没有一个能完美工作,所以我写了这个curl,它似乎可以完成工作。您需要与拥有链接的任何人共享您的 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
 遵循重定向,直到它到达文件。

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

id



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


    

© www.soinside.com 2019 - 2024. All rights reserved.