我想定期保存我的Google位置记录。
通常我使用Web接口: https://maps.google.com/locationhistory/b/0
它还提供了导出数据的链接,如下所示:
https://maps.google.com/locationhistory/b/0/kml?startTime=1376604000000&endTime=1376690400000
如何每天下载此链接(及其固定的时间戳),包括使用WGET或curl登录?
简单地告诉它给我带来302 Moved Temporarily
答案 0 :(得分:10)
您收到302 Moved Temporarily
,因为您需要进行身份验证:Google正在将您重定向到其登录页面。
经过身份验证后,Google凭据会存储在浏览器Cookie中。如果您要下载Google地图位置记录链接,则必须提供curl
的浏览器Cookie。 -b
的{{1}}选项可让您对Netscape/Mozilla cookie file format使用curl
。
cookies.txt
的每一行都有七个以制表符分隔的字段:
- 域 - 创建可以读取变量的AND的域。
- flag - 一个TRUE / FALSE值,指示给定域中的所有计算机是否都可以访问该变量。此值由浏览器自动设置,具体取决于您为域设置的值。
- 路径 - 变量有效的域内路径。
- 安全 - 一个TRUE / FALSE值,指示是否需要与域进行安全连接才能访问该变量。
- 到期 - 变量过期的UNIX时间。 UNIX时间定义为自1970年1月1日00:00:00 GMT以来的秒数。
- name - 变量的名称。
- 值 - 变量的值。
因此,最简单的解决方案是将浏览器Cookie导出到cookies.txt
文件并指示cookies.txt
使用它们。在Chrome中,Cookie存储在sqlite3数据库中。您可以使用以下命令导出它们:
curl
请注意限制导出Cookie的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
。
使用host_key like "%google.com"
调用curl
以使用导出的Cookie并对googles地图进行身份验证,然后您就可以下载Google地图位置记录
-b /tmp/cookies.txt
要避免将Cookie存储在临时文件中,请使用以下命令:
curl -b /tmp/cookies.txt https://maps.google.com/locationhistory/b/0/kml\?startTime\=1376604000000\&endTime\=1376690400000
答案 1 :(得分:2)
回复很晚,但也可能会帮助其他人:
导出Cookie的另一种简单方法是首先使用google用户名和密码登录chrome,然后使用此扩展程序export cookie将Cookie导出到文件中。 之后,您可以将此文件与wget一起使用--load-cookies选项下载文档,如:
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/"