使用Python从Google文档下载电子表格

使用Python从Google文档下载电子表格,第1张

使用Python从Google文档下载电子表格

如果有人遇到这种情况寻求快速解决方案,这是另一个(当前)不依赖gdata客户端库的解决方案:

#!/usr/bin/pythonimport re, urllib, urllib2class Spreadsheet(object):    def __init__(self, key):        super(Spreadsheet, self).__init__()        self.key = keyclass 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.urlenpre(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)


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5616796.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存