Si ottiene un 302 Moved Temporarily
perché è necessario essere autenticati: Google si sta riorientando alla sua pagina di login.
Una volta autenticate, le credenziali di google vengono memorizzate nei cookie del browser. Se desideri scaricare il link della cronologia delle posizioni di Google Maps, devi fornire i cookie del browser con curl
. L'opzione -b
di curl
consente di utilizzare unorispetto a Netscape/Mozilla cookie file format.
Ogni riga del cookies.txt
ha sette campi separati da tabulazione:
- dominio - Il dominio che ha creato e che può leggere la variabile.
- flag - Un valore VERO/FALSO che indica se tutte le macchine all'interno di un determinato dominio possono accedere alla variabile. Questo valore viene impostato automaticamente dal browser, in base al valore impostato per il dominio.
- percorso - Il percorso all'interno del dominio per cui la variabile è valida.
- protetto - Un valore VERO/FALSO che indica se è necessaria una connessione protetta con il dominio per * accedere alla variabile.
- scadenza - L'ora UNIX in cui la variabile scadrà. Il tempo UNIX è definito come il numero di secondi dal 1 gennaio 1970 00:00:00 GMT.
- nome - Il nome della variabile.
- valore - Il valore della variabile.
Quindi la soluzione più semplice è quella di esportare i cookie del browser in un file cookies.txt
e istruire curl
di usarli. In Chrome, i cookie sono memorizzati in un database sqlite3. Si possono esportare con il seguente comando:
sqlite3 ~/.config/google-chrome/Default/Cookies \
'select host_key, "TRUE", path, "FALSE", expires_utc, name, value from cookies where host_key like "%google.com"' \
| tr '|' '\t' > /tmp/cookies.txt
Annotare la host_key like "%google.com"
che limita i cookie esportati.
Invoke curl
con -b /tmp/cookies.txt
di usare i cookies esportati e l'autenticazione a googles mappe e sarete in grado di scaricare il google maps cronologia delle posizioni
curl -b /tmp/cookies.txt https://maps.google.com/locationhistory/b/0/kml\?startTime\=1376604000000\&endTime\=1376690400000
Per evitare di memorizzare i cookie in un file temporaneo, utilizzare questo comando :
curl -b <(sqlite3 ~/.config/google-chrome/Default/Cookies 'select host_key, "TRUE", path, "FALSE", expires_utc, name, value from cookies' | tr '|' '\t') https://maps.google.com/locationhistory/b/0/kml\?startTime\=1376604000000\&endTime\=1376690400000
State limitando il redirect a wget (usando '--max-redirect', di default è 20 o qualcosa del genere). In cURL '-L' (o' --location') viene usato per istruirlo a seguire i reindirizzamenti. – Sithsu
Ho usato il valore predefinito e non ne ho impostato nessuno in particolare .. – Harry
attualmente sto lavorando a una soluzione del genere: http://pmsenthilkumar.blogspot.de/2012/01/google-api-using-curl-or-wget- o-plain.html – Harry