11

Ho un foglio di calcolo pubblico (pubblicato) che sto cercando di scaricare a livello di codice nel modulo TSV.Scarica/Esporta foglio di calcolo pubblico di Google come TSV dalla riga di comando?

Nel mio browser, con un accesso Google attivo, per qualche chiave reale $key, https://spreadsheets.google.com/feeds/download/spreadsheets/Export?key=$key&exportFormat=tsv funziona e produce un file TSV.

Nel mio guscio, tuttavia:

  • curl -L "https://spreadsheets.google.com/feeds/download/spreadsheets/Export?key=$key&exportFormat=tsv" produce un mazzo di javascript.
  • curl -L "https://spreadsheets.google.com/feeds/download/spreadsheets/Export?key=$key&exportFormat=csv" produce anche un po 'di javascript.
  • curl -L "https://docs.google.com/spreadsheet/pub?key=$key&single=true&gid=0&output=csv" funziona e produce un file CSV.
  • curl -L "https://docs.google.com/spreadsheet/pub?key=$key&single=true&gid=0&output=tsv" produce un messaggio di errore.

(tenta di utilizzare wget prodotto risultati simili.)

Come faccio a fare questo lavoro? Tutta la documentazione di Google che sono stato in grado di trovare fino ad ora è orientata verso problemi molto più complicati di un semplice download e cambio di formato, e se la soluzione al mio problema è lì da qualche parte, non sono ancora riuscita a trovarla .

+0

sembra un problema Auth. Prova ad uscire dal tuo account google? (Strano che il CSV funzioni e TSV non funzioni). – eddyparkinson

risposta

0

I file privati ​​richiedono il download delle credenziali di autorizzazione OAuth. Puoi leggere ulteriori informazioni sulla procedura nella guida Download Files dell'API di Google Drive.

+0

Non è un file privato. –

18

Ho trovato che questo è frustrantemente non documentato. Sono sicuro che sia documentato da qualche parte ... ma non l'ho mai trovato.

Il presupposto è che il tuo Foglio Google sia pubblicato pubblicamente. Questo non è intuitivo per molte persone. (Scegliere File -> Pubblica sul Web ...)

Quando si pubblica un foglio, si è dato un URL come questo per copiare: https://docs.google.com/spreadsheets/d/1XsfK2TN418FuEstNGG2eI9FmEV-4eY-FnndigHWIhk4/pubhtml

Questo url è ben sfogliabile ... ma non è il CSV scaricabile che volevo. Attraverso una lunga combinazione di ricerca e di tentativi ed errori sono arrivato fino a questo:

curl "https://docs.google.com/spreadsheets/d/1XsfK2TN418FuEstNGG2eI9FmEV-4eY-FnndigHWIhk4/export?gid=0&format=csv"

Trovo che sia estremamente utile. Spero che qualcuno commenta con un link ai documenti ufficiali che lo spiegano in modo più dettagliato.

+0

In qualche modo, se includo 'gid = 0', ricevo un errore di pagina non trovato, ma se non lo includo, ottengo il risultato come previsto –

0

La mia risposta è su come trovare la risposta.

Nel browser Chrome, vai al tuo documento di google.

Nell'angolo in alto a destra del browser, andare alle tre dots-> più strumenti-> strumenti di sviluppo

Si aprirà il codice HTML ... debugger.

Nella parte superiore della finestra del debugger, selezionare la rete.

Ora nel documento, avviare il download come si sta tentando di automatizzare.

Nel debugger, mostrerà tutte le richieste Web che sono state fatte.Il primo nuovo è probabilmente quello che vuoi.

Si dovrebbe essere in grado di click destro-> copy-> indirizzo copia collegamento

l'URL include un ID. Non so a cosa serva, ma Curl è stato in grado di scaricare il documento senza.

Spero sia utile.

3

posso scaricare attraverso il guscio in questo modo:

  1. File => Pubblica sul Web
  2. Scegli un foglio e il formato vuoi scaricare.
  3. Cliccare sulla Pubblica
  4. Copia il link
  5. e poi usarlo:

    wget -O ./filename.csv "LINK" 
    

    o

    curl -L "LINK" > ./filename.csv 
    

nel mio caso ha funzionato come previsto.

Inoltre penso che pubblicare tutti i formati in modo da poter scegliere cosa scaricare modificato l'ultima parte dell'URL, senza annullare la pubblicazione e ri-pubblicarla:

output=tsv 
output=csv 
Problemi correlati