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
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
Tôi đã sử dụng giá trị mặc định và không đặt giá trị cụ thể nào .. – Harry
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