每天WGET您的谷歌位置记录

时间:2013-08-17 15:41:53

标签: bash google-maps curl location wget

我想定期保存我的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

2 个答案:

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