给定键和工作表ID(gid
),您能否生成一个Python示例,说明如何下载Google Docs电子表格?我不能
我已经搜索过API的版本1,版本2和版本3。我没有运气,我无法弄清楚他们编译过的类似ATOM的供稿API,gdata.docs.service.DocsService._DownloadFile
私有方法说我未经授权,而且我不想自己编写整个Google
Login身份验证系统。由于挫败感,我要面对自己。
我有一些电子表格,我想这样访问它们:
username = 'mygooglelogin@gmail.com'
password = getpass.getpass()
def get_spreadsheet(key, gid=0):
... (help!) ...
for row in get_spreadsheet('5a3c7f7dcee4b4f'):
cell1, cell2, cell3 = row
...
请保存我的脸。
更新1: 我已经尝试了以下方法,但是没有任何组合Download()
或Export()
似乎奏效。(DocsService
此处的文档)
import gdata.docs.service
import getpass
import os
import tempfile
import csv
def get_csv(file_path):
return csv.reader(file(file_path).readlines())
def get_spreadsheet(key, gid=0):
gd_client = gdata.docs.service.DocsService()
gd_client.email = 'xxxxxxxxx@gmail.com'
gd_client.password = getpass.getpass()
gd_client.ssl = False
gd_client.source = "My Fancy Spreadsheet Downloader"
gd_client.ProgrammaticLogin()
file_path = tempfile.mktemp(suffix='.csv')
uri = 'http://docs.google.com/feeds/documents/private/full/%s' % key
try:
entry = gd_client.GetDocumentListEntry(uri)
# XXXX - The following dies with RequestError "Unauthorized"
gd_client.Download(entry, file_path)
return get_csv(file_path)
finally:
try:
os.remove(file_path)
except OSError:
pass
如果有人遇到这种情况寻求快速解决方案,这是另一个(当前)不依赖gdata客户端库的解决方案:
#!/usr/bin/python
import re, urllib, urllib2
class Spreadsheet(object):
def __init__(self, key):
super(Spreadsheet, self).__init__()
self.key = key
class Client(object):
def __init__(self, email, password):
super(Client, self).__init__()
self.email = email
self.password = password
def _get_auth_token(self, email, password, source, service):
url = "https://www.google.com/accounts/ClientLogin"
params = {
"Email": email, "Passwd": password,
"service": service,
"accountType": "HOSTED_OR_GOOGLE",
"source": source
}
req = urllib2.Request(url, urllib.urlencode(params))
return re.findall(r"Auth=(.*)", urllib2.urlopen(req).read())[0]
def get_auth_token(self):
source = type(self).__name__
return self._get_auth_token(self.email, self.password, source, service="wise")
def download(self, spreadsheet, gid=0, format="csv"):
url_format = "https://spreadsheets.google.com/feeds/download/spreadsheets/Export?key=%s&exportFormat=%s&gid=%i"
headers = {
"Authorization": "GoogleLogin auth=" + self.get_auth_token(),
"GData-Version": "3.0"
}
req = urllib2.Request(url_format % (spreadsheet.key, format, gid), headers=headers)
return urllib2.urlopen(req)
if __name__ == "__main__":
import getpass
import csv
email = "" # (your email here)
password = getpass.getpass()
spreadsheet_id = "" # (spreadsheet id here)
# Create client and spreadsheet objects
gs = Client(email, password)
ss = Spreadsheet(spreadsheet_id)
# Request a file-like object containing the spreadsheet's contents
csv_file = gs.download(ss)
# Parse as CSV and print the rows
for row in csv.reader(csv_file):
print ", ".join(row)
问题内容: 我看过很多关于此的文章,但它们似乎已经过时,例如,没有一个Google Docs Spreadsheet网址具有关键参数。 然后,我阅读了此内容以访问数据 https://developers.google.com/gdata/samples/spreadsheet_sample 我的电子表格位于:https : //docs.google.com/spreadsheets/d/1SK
我很抱歉,如果这是一个明显的问题,我仍然是相当新的API。我正在使用python drive api库,并试图将google电子表格下载为CSV。 当我使用files.get时,它会吐出一个没有downloadUrl的文件,在导出链接字段中也没有“text/csv”键。 如果不可能,我可以找到解决方案,但我希望是这样,因为可以手动完成(file->download_as->csv) 我需要使用go
我正在尝试下载文件从谷歌驱动器和所有我有驱动器的URL。 我读过关于google API的文章,其中谈到了一些和,这也需要一些凭据(主要是JSON)。但我不知道它是如何运作的。 此外,尝试了,但我的情况是从驱动器中获取文件。也尝试了,但没有用。 已尝试库。它有很好的上传功能驱动,但没有下载选项。 任何帮助都将不胜感激。多谢了。
问题内容: 嗨,我正在为Android使用picasa示例并对其进行修改,但我没有得到任何文档列表,请发布我的修改后的类其余内容与在picasa示例中相同吗? 获取方法 FetchGooleDocsActivity(这是主要活动) GdocUrl 维护节 UserFeed 饲料 我认为我的问题出在或类原因中,我不知道接下来在URL中输入什么 问题答案: 您需要设置版本。从API文档部分中的“ 指定
我使用带有php的Google Drive api来做各种奇妙的事情,但却无法下载HTML格式的电子表格。我可以使用getExportLinks()方法以各种格式下载它,但我只需要工作表中的文本,而不是docx或ODS中的格式化文件。 通过使用/feeds/download/spreadsheets/export?exportformat=html&format=html&key=id URL,g
我有一段代码可以下载谷歌电子表格 连接超时默认为20秒。我试图将其设置为不同的值,但它不起作用。我不断得到 原因:java.net.SocketTimeoutException:java.net.SocketInputStream.socketRead0(本机方法)的读取超时~[na:1.7.060]在java.net.SocketInputStream.Read(SocketInputStrea