2012-05-24 18 views
16

Tengo una hoja de cálculo de Google que no se ha hecho pública, pero que solo está disponible para cualquiera que tenga el enlace de acceso. Aunque puedo acceder a los datos en formato CSV desde mi navegador, incluso cuando no estoy conectado a mi cuenta de Google (es decir, se permite el acceso anónimo), no hay forma de que pueda descargar los datos desde la línea de comando usando wget, por ejemplo . He encontrado varias páginas web con algunas instrucciones para crear la URL de descarga, pero hasta ahora no he tenido éxito. ¿Existe una manera fácil y directa de hacerlo o tendré que utilizar alguna biblioteca de Google Data para acceder a esos datos?Descargar hoja de cálculo de Google no publicada como CSV

Respuesta

0

Ahora puede responder a las preguntas, así que voy a dejarlo respondió por buena (pegar de mi comentario anterior).

Mi problema es que no estaba almacenando la cookie correctamente. En ese momento, estaba usando un programa de Python para intentar descargar esto.Esto solucionó el problema que estaba informando:

# Cookie management 
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(CookieJar())) 
csv_data = csv.reader(opener.open(url)) 
22

Tal vez no entiendo correctamente lo que está tratando de hacer, pero encontré una solución in this article que funciona bien para mí.

En el artículo, el autor crea un enlace para descargar la hoja de cálculo como un archivo XLS (usando "& salida = xls”), pero me trataron '& salida = csv' y se descargaron con éxito un archivo CSV correcta.

Aquí está el enlace de descarga a mi "Descargar hoja de cálculo de prueba", construida sólo la forma en que el autor del artículo sugiere, pero con "csv" sustituido por "xls":

https://docs.google.com/spreadsheet/ccc?key=0At2sqNEgxTf3dEt5SXBTemZZM1gzQy1vLVFNRnludHc&output=csv

el enlace es anónima (es decir, "Cualquiera que tenga el enlace puede ver"), y Lo descargué sin iniciar sesión en mi cuenta de Google. Debo admitir que no usé wget para hacerlo (solo usé un navegador, no tenía instalado wget), pero no puedo pensar en una razón por la cual wget no funcione igual de bien.

De hecho, acabo agarró una copia de wget y probé, y que descarga el archivo correctamente también:

% 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 

Así que ya va ...


ACTUALIZACIÓN PARA 2018

Como se ha comentado por @AndyMortimer, la nueva URL descarga es
  https://docs.google.com/spreadsheets/d/<KEY>/export?gid=<GID>&format=csv
donde <KEY> y <GID> se puede obtener de su URL de navegación ,
  https://docs.google.com/spreadsheets/d/<KEY>/edit#gid=<GID>

PS: hojas de cálculo pueden tener varios libros, GID es el ID de libro deseado. La hoja de cálculo de un libro generalmente tiene gid=0, pero si agrega más, tendrán números aleatorios (el GID se preselecciona, incluso cambiando el orden de las pestañas).

Por lo tanto, el uso de wget y la misma hoja de cálculo,

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

Sólo por curiosidad he intentado ir a buscar el archivo con wget utilizando tanto "y salida = xls" y "& output = txt", y ambos ensayos funcionaron correctamente también. (El formato "txt" hace que la hoja de cálculo se descargue como un archivo delimitado por tabulaciones, que era algo que no hubiera sabido si no hubiera empezado a perder el tiempo con esto. ¡Así que gracias! Aprendí un par de cosas nuevas en este proceso.) – Hephaestus

+0

Al final, sin ningún motivo que aún no entiendo, no pude descargar el archivo. Pude hablar con el propietario para hacerlo público, así que ese fue el final del problema para mí. Gracias por tus respuestas de todos modos. –

+0

Claro, no se preocupe. En realidad, no tenía experiencia con nada de eso cuando encontré tu pregunta, estaba intentando descubrir cómo hacer algo similar en ese momento. Así que fue un buen ejercicio para mí descubrir cómo hacerlo, y gran parte de mi razón para responder fue documentar lo que había descubierto. Es bueno que haya podido encontrar una solución alternativa tan efectiva. :-) – Hephaestus

13

soy capaz de obtener una URL -able wget de direcciones URL de hojas de cálculo públicos que se ven así:

https://docs.google.com/spreadsheets/d/LONG_ID_STRING/edit?usp=sharing 

cambiándolos a tener este aspecto:

https://docs.google.com/spreadsheets/d/LONG_ID_STRING/export?format=csv 

para que mi comando wget se vería así:

$ wget "https://docs.google.com/spreadsheets/d/LONG_ID_STRING/export?format=csv" 

Asegúrese de compartir la hoja de cálculo primero con el botón azul "Compartir" en la parte superior derecha, luego "Obtener enlace compatible".

+0

para cambiar el nombre de archivo con wget use: wget -O FILE URL – schurpf

+1

Quiero agregar que el segundo LONG_ID_STRING no parece importar. La siguiente URL funciona bien: 'https: //docs.google.com/spreadsheets/d/LONG_ID_STRING/export? Format = csv' –

+0

Esta solución funcionó para mí. @ArjunGuha es correcto. Los segundos 'LONG_ID_STRING' no son necesarios. –

-1

encontré con este problema y probado unos pocos de las soluciones. Ninguno funcionaba perfectamente, así que escribí este rizo que parece hacer el trabajo. Necesita compartir la hoja de cálculo de Google con cualquier persona que tenga el enlace para que funcione

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

la -L es el truco aquí tiene Google a menudo se mueve el csv alrededor pero le enviará un enlace de redirección. -L dice curl para seguir los redireccionamientos hasta que aterrice en el archivo.

se encuentra la id de la hoja de cálculo abriéndolo en Google Drive y mirando a la url

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

+0

Por favor, debe mostrar cómo se asignan '_BIG_BASE64_' y' _ID_' de 'https: // docs.google.com/spreadsheets/d/_BIG_BASE64_/edit # gid = _ID_' a su' curl'. No hay 'ccc' y no' key 'args en las hojas de cálculo (plural). –

Cuestiones relacionadas