Jos*_*eos 17 csv google-sheets
我有一个尚未公开的Google电子表格,但只有拥有访问链接的任何人都可以使用.虽然我可以从我的浏览器访问CSV格式的数据,即使我没有登录我的Google帐户(也就是说,允许匿名访问),我无法使用wget从命令行下载数据,用于instante .我找到了几个网页,其中包含一些创建下载URL的说明,但到目前为止我还没有成功.是否有一种简单,直接的方法可以执行此操作,还是必须使用某些Google数据库来访问该数据?
Hep*_*tus 24
也许我没有正确理解你想要做什么,但我在本文中找到了一个对我来说很好的解决方案.
在文章中,作者为电子表格创建了一个下载链接作为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
Run Code Online (Sandbox Code Playgroud)
所以你去......
更新2018年
正如评论说@AndyMortimer,新的下载地址 是
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,但如果你添加更多,他们将有随机数字(即使改变标签顺序,GID仍然是预先设定的).
所以,使用wget和相同的电子表格,
wget --no-check-certificate -O test.csv \
'https://docs.google.com/spreadsheets/d/0At2sqNEgxTf3dEt5SXBTemZZM1gzQy1vLVFNRnludHc/export?gid=0&format=csv'
Run Code Online (Sandbox Code Playgroud)
cge*_*nco 16
我可以wget从公共电子表格网址中获取可用的网址,如下所示:
https://docs.google.com/spreadsheets/d/LONG_ID_STRING/edit?usp=sharing
Run Code Online (Sandbox Code Playgroud)
通过将它们更改为如下所示:
https://docs.google.com/spreadsheets/d/LONG_ID_STRING/export?format=csv
Run Code Online (Sandbox Code Playgroud)
所以我的wget命令看起来像:
$ wget "https://docs.google.com/spreadsheets/d/LONG_ID_STRING/export?format=csv"
Run Code Online (Sandbox Code Playgroud)
确保首先使用右上角的蓝色"共享"按钮共享电子表格,然后"获取可共享的链接".
Jos*_*eos -1
现在我可以回答问题了,所以我将永远保留它的答案(粘贴我之前的评论)。
我的问题是我没有正确存储 cookie。当时,我正在使用Python程序来尝试下载这个。这解决了我报告的问题:
# Cookie management
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(CookieJar()))
csv_data = csv.reader(opener.open(url))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16367 次 |
| 最近记录: |