2013-08-17 16 views
7

Desidero salvare regolarmente la cronologia delle posizioni su google.WGET giornalmente alla cronologia delle posizioni google

Di solito io uso l'interfaccia Web: https://maps.google.com/locationhistory/b/0

fornisce anche un link per esportare i dati che si presenta così:

https://maps.google.com/locationhistory/b/0/kml?startTime=1376604000000&endTime=1376690400000

Come posso scaricare questo link (e le sue timestamp secondo fisso) ogni giorno includendo l'accesso utilizzando WGET o arricciatura?

semplicemente wget mi ha portato un 302 Moved Temporarily

+0

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

+0

Ho usato il valore predefinito e non ne ho impostato nessuno in particolare .. – Harry

+0

attualmente sto lavorando a una soluzione del genere: http://pmsenthilkumar.blogspot.de/2012/01/google-api-using-curl-or-wget- o-plain.html – Harry

risposta

10

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 
+0

wow - funziona come un fascino! – Harry

+1

dopo l'input, è facile ottenere il kml. Generazione di link anche (86400 secondi al giorno ecc.) Wow, sono così felice che funzioni. Grazie mille, hai guadagnato la taglia più di una volta. – Harry

+0

Sono contento che ti abbia aiutato – cbliard

2

Rispondendo in ritardo su questo, ma può essere questo aiuterà anche a qualcun altro:

Un altro modo semplice per esportare i cookie è il primo accesso su Chrome usando il nome utente e la password di google, quindi utilizzare questa estensione export cookie per esportare i cookie in un file. Dopo di che è possibile utilizzare questo file con wget per scaricare il documento con le opzioni --load-biscotti come:

wget --user-agent="Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:25.0) Gecko/20100101 Firefox/25.0 FirePHP/0.7.4" --load-cookies cookie.txt -p --keep-session-cookies "http://google.com/"