2013-08-17 29 views
7

Tôi muốn lưu lịch sử vị trí trên Google của mình một cách thường xuyên.WGET lịch sử vị trí trên google của bạn hàng ngày

Thông thường tôi sử dụng webinterface: https://maps.google.com/locationhistory/b/0

nó cũng cung cấp một liên kết để xuất dữ liệu trông giống như rằng:

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

Làm thế nào tôi có thể tải về liên kết này (và timestamps theo của nó cố định) hàng ngày bao gồm đăng nhập bằng WGET hoặc curl?

Đơn giản chỉ cần wget nó mang lại cho tôi một 302 Moved Temporarily

+0

Bạn đang hạn chế chuyển hướng trong wget (sử dụng 'max-redirect', mặc định là 20 hoặc một cái gì đó). Trong cURL '-L' (hoặc' --location') được sử dụng để hướng dẫn nó theo các chuyển hướng. – Sithsu

+0

Tôi đã sử dụng giá trị mặc định và không đặt giá trị cụ thể nào .. – Harry

+0

hiện tại tôi đang làm việc trên một giải pháp như thế: http://pmsenthilkumar.blogspot.de/2012/01/google-api-using-curl-or-wget- hoặc-plain.html – Harry

Trả lời

10

Bạn nhận được một 302 Moved Temporarily bởi vì bạn cần phải được xác thực: Google đang chuyển hướng bạn đến trang đăng nhập của mình.

Sau khi xác thực, thông tin đăng nhập google được lưu trữ trong cookie của trình duyệt. Nếu bạn muốn tải xuống liên kết lịch sử vị trí trên bản đồ của Google, thì bạn phải cung cấp cookie trình duyệt với curl. Tùy chọn -b của curl cho phép bạn sử dụng cookies.txt đối với Netscape/Mozilla cookie file format.

Mỗi dòng của cookies.txt có bảy lĩnh vực tách biệt bởi tab:

  • miền - Tên miền đã tạo ra và có thể đọc các biến.
  • cờ - Giá trị TRUE/FALSE cho biết liệu tất cả các máy trong miền cụ thể có thể truy cập biến hay không. Giá trị này được trình duyệt tự động đặt, tùy thuộc vào giá trị bạn đặt cho tên miền.
  • đường dẫn - Đường dẫn trong miền mà biến đó hợp lệ.
  • bảo mật - Giá trị TRUE/FALSE cho biết liệu có cần kết nối an toàn với miền để * truy cập biến hay không.
  • hết hạn - Thời gian UNIX mà biến sẽ hết hạn vào. Thời gian UNIX được định nghĩa là số giây kể từ ngày 1 tháng 1 năm 1970 00:00:00 GMT.
  • tên - Tên của biến.
  • giá trị - Giá trị của biến.

Vì vậy, giải pháp đơn giản nhất là để xuất khẩu cookie của trình duyệt của bạn vào một tập tin cookies.txt và hướng dẫn curl để sử dụng chúng. Trong Chrome, cookie được lưu trữ trong cơ sở dữ liệu sqlite3. Bạn có thể xuất chúng bằng lệnh sau:

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 

Lưu ý host_key like "%google.com" giới hạn cookie được xuất.

Gọi curl với -b /tmp/cookies.txt sử dụng cookie xuất khẩu và xác thực để Googles bản đồ và bạn sẽ có thể tải xuống Google Maps lịch sử vị trí

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

Để tránh việc lưu trữ các tập tin cookie của bạn trong một tập tin tạm thời, sử dụng lệnh này :

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 - hoạt động như một nét duyên dáng! – Harry

+1

sau khi đầu vào của bạn, nó dễ dàng để có được kml. Liên kết thế hệ cũng (86400 giây một ngày vv) wow, tôi rất vui vì công trình. Cảm ơn bạn rất nhiều, bạn kiếm được tiền thưởng nhiều hơn một lần. – Harry

+0

Tôi rất vui vì nó đã giúp bạn – cbliard

2

Việc trả lời cuối về vấn đề này, nhưng có thể điều này cũng sẽ giúp người khác:

Một cách dễ dàng khác để xuất cookie là đăng nhập lần đầu trên Chrome bằng tên người dùng và mật khẩu google, sau đó sử dụng phần mở rộng này export cookie để xuất cookie vào một tệp. Sau đó bạn có thể sử dụng tập tin này với wget để tải tài liệu với các tùy chọn --load-cookie như:

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/" 
Các vấn đề liên quan