2013-08-17 10 views
7

Chcę regularnie zapisywać moją historię lokalizacji google.Przeglądaj swoją historię lokalizacji google codziennie

Zwykle używam Serwer WWW: https://maps.google.com/locationhistory/b/0

Zapewnia również link do eksportowania danych, który wygląda tak:

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

Jak mogę pobrać ten link (i jego według znaczników czasu ustalony) codziennie, łącznie z logowaniem za pomocą WGET lub curl?

Wystarczy wget przyniósł mi 302 Moved Temporarily

+0

Czy ograniczanie przekierowań w wget (z użyciem '--max-redirect', domyślnie jest to 20 lub coś). W cURL '-L' (lub' --location') jest używany do instruowania go, aby śledził przekierowania. – Sithsu

+0

Użyłem wartości domyślnej i nie ustawiałem żadnej konkretnie .. – Harry

+0

Obecnie pracuję nad takim rozwiązaniem: http://pmsenthilkumar.blogspot.de/2012/01/google-api-using-curl-or-wget- lub-plain.html – Harry

Odpowiedz

10

Dostajesz 302 Moved Temporarily bo trzeba być uwierzytelnione: Google przekierowuje Cię do swojej strony logowania.

Po uwierzytelnieniu dane logowania do Google są przechowywane w plikach cookie przeglądarki. Jeśli chcesz pobrać link Historia lokalizacji mapy Google, musisz podać pliki cookie przeglądarki pod numerem curl. Opcja -b z curl umożliwia użycie cookies.txt w odniesieniu do Netscape/Mozilla cookie file format.

Każdy wiersz cookies.txt ma siedem rozdzielone tabulatorami pola:

  • domen - domenę, stworzony i że może odczytać zmienną.
  • flag - Wartość PRAWDA/FAŁSZ wskazująca, czy wszystkie komputery w danej domenie mają dostęp do zmiennej. Ta wartość jest ustawiana automatycznie przez przeglądarkę, w zależności od wartości ustawionej dla domeny.
  • ścieżka - Ścieżka wewnątrz domeny, dla której zmienna jest ważna.
  • bezpieczne - Wartość TRUE/FALSE wskazująca, czy wymagane jest bezpieczne połączenie z domeną, aby * uzyskać dostęp do zmiennej.
  • wygaśnięcie - Czas UNIX, w którym zmienna wygaśnie. Czas UNIX jest zdefiniowany jako liczba sekund od 1 stycznia 1970 00:00:00 GMT.
  • nazwa - Nazwa zmiennej.
  • wartość - Wartość zmiennej.

więc najprostszym rozwiązaniem jest eksport cookies przeglądarki do pliku cookies.txt i instruować curl z nich korzystać. W przeglądarce Chrome pliki cookie są przechowywane w bazie danych sqlite3. Można eksportować je za pomocą następującego polecenia:

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 

Zanotuj host_key like "%google.com" co ogranicza wyeksportowane pliki cookies.

Invoke curl z -b /tmp/cookies.txt użyć wyeksportowanych plików cookie i uwierzytelnienia w google mapy i będziesz mógł pobrać mapy google historia lokalizacja

curl -b /tmp/cookies.txt https://maps.google.com/locationhistory/b/0/kml\?startTime\=1376604000000\&endTime\=1376690400000 

Aby uniknąć przechowywania cookies w pliku tymczasowym, użyj polecenia :

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 - działa jak charme! – Harry

+1

po wprowadzeniu, łatwo można uzyskać kml. Generowanie linków również (86400 secs day itd.) Wow, tak się cieszę, że działa. Dziękuję bardzo, zdobyłeś nagrodę więcej niż raz. – Harry

+0

Cieszę się, że ci pomogło – cbliard

2

Odpowiadając na to późno, ale może być to również pomoże ktoś inny:

Innym sposobem na łatwe eksportowanie plików cookie jest zalogowanie się w Chrome przy użyciu nazwy użytkownika i hasła Google, a następnie użycie tego rozszerzenia, aby wyeksportować plik cookie do pliku. Po tym można użyć tego pliku z wget pobrać dokument --load-cookies opcji, takich jak:

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/"