Laden Sie die öffentliche Tabelle von Google Docs mit Python in CSV herunter

8

Ich kann eine Google Docs csv mit wget herunterladen:

%Vor%

Aber ich kann nicht die gleiche csv mit Python herunterladen:

%Vor%

Das Ergebnis ist die Google-Anmeldeseite. Was mache ich falsch?

    
debuti 11.10.2012, 14:48
quelle

4 Antworten

15

Benutze einfach Anfragen, es ist viel besser als die Verwendung von urllib.

Versuchen Sie es.

%Vor%     
Jayson Reis 11.10.2012, 15:01
quelle
9

Sie speichern keine Cookies.

Zuerst möchte ich sagen, dass ich die Empfehlung, die most-excellent requests -Bibliothek zu verwenden, voll und ganz unterstütze.

>

Wenn Sie dies jedoch in Vanille Python 2 tun müssen, liegt das Problem in der Tatsache, dass Google Sie über HTTP 302-Weiterleitungen herumtreibt, und es erwartet, dass Sie sich an die Cookies erinnern, die es bei jeder Antwort setzt. Wenn festgestellt wird, dass Sie keine Cookies speichern, werden Sie auf die Anmeldeseite weitergeleitet.

Standardmäßig folgt urllib2.urlopen (oder der von build_opener zurückgegebene Öffner) 302 Weiterleitungen, speichert jedoch keine HTTP-Cookies. Sie müssen Ihrem Opener beibringen, wie das geht. Wie so:

%Vor%

Auch hier sollte requests verwendet werden, aber wenn es nicht möglich ist, kann die Standardbibliothek die Arbeit erledigen.

    
Don Spaulding 10.04.2013 20:10
quelle
1

Die requests -Bibliothek ist großartig und der Gold-Standard für HTTP-Anfragen von Python, aber dieser Download-Stil ist, obwohl er noch nicht veraltet ist, wahrscheinlich nicht lange haltbar und bezieht sich speziell auf den Download-Link-Stil. Das Feld downloadUrl in der Google Drive API Version 2 ist wurde bereits abgelehnt . Der derzeit gängigste Weg, Google Tabellen als CSV-Datei zu exportieren, besteht darin, die (aktuelle) Google Drive-API zu verwenden.

Warum also die Drive API? Soll das nicht eher etwas für die Google Tabellen-API sein? Nun, die Google Tabellen API ist für Tabellenkalkulation -orientierte Funktionalität, dh Datenformatierung, Spaltengrößenanpassung, Erstellen von Diagrammen, Zellenüberprüfung usw., während die Drive API für Datei ist Funktionalität, dh Import / Export.

Im Folgenden finden Sie eine vollständige Lösung für die Befehlszeilenlösung . (Wenn Sie Python nicht verwenden, können Sie es als Pseudocode verwenden und eine beliebige Sprache auswählen, die von den Google APIs-Clientbibliotheken unterstützt wird .) Nehmen Sie für das Code-Snippet das aktuellste Blatt mit dem Namen inventory an (ältere Dateien mit diesem Namen werden ignoriert) und DRIVE ist der API-Dienstendpunkt:

%Vor%

Wenn Ihr Blatt groß ist, müssen Sie es möglicherweise in Stücke exportieren - siehe diese Seite wie man das macht . Wenn Sie Google-APIs im Allgemeinen noch nicht kennen, habe ich ein (etwas veraltetes aber) benutzerfreundliches Intro-Video für dich. (Es gibt 2 Videos danach vielleicht auch nützlich.)

    
wescpy 09.03.2017 04:47
quelle
0

Ich würde Anfragen verwenden

%Vor%     
locojay 11.10.2012 15:00
quelle

Tags und Links