如何编写脚本来下载自己的 Google 网络历史记录?
我知道
https://www.google.com/history/
https://www.google.com/history/lookup?hl=en&authuser=0&max=1326122791634447
提要:https://www.google.com/history/lookup?month=1&day=9&yr=2011&output=rss
但是当以编程方式而不是通过浏览器调用时它们会失败。
如何编写脚本来下载自己的 Google 网络历史记录?
我知道
https://www.google.com/history/
https://www.google.com/history/lookup?hl=en&authuser=0&max=1326122791634447
提要:https://www.google.com/history/lookup?month=1&day=9&yr=2011&output=rss
但是当以编程方式而不是通过浏览器调用时它们会失败。
我写了一篇关于如何使用我放在一起的脚本下载你的整个谷歌网络历史的博客文章。
这一切都直接在客户端的网络浏览器中运行(即没有数据传输给第三方),您可以将其下载到 CSV 文件中。你可以在这里查看源代码:
http://geeklad.com/tools/google-history/google-history.js
我的博客文章有一个书签,您可以使用它轻松启动脚本。它通过访问相同的提要来工作,但执行一次读取整个历史 1000 条记录的迭代,将其转换为 CSV 字符串,并通过触摸按钮使数据可下载。
我根据自己的历史运行它,并成功下载了超过 13 万条记录,导出为 CSV 时大约有 30MB。
编辑:似乎使用我的脚本的 fok 数量遇到了问题,可能是由于他们的历史数据中存在一些奇怪的问题。不幸的是,由于脚本在浏览器中完成所有操作,因此当它遇到破坏它的历史时,我无法调试它。如果您是 JavaScript 开发人员,请使用我的脚本,看来您的历史已经导致它崩溃了;请随时帮助我修复它并向我发送代码的任何更新。
我尝试了 GeekLad 的系统,不幸的是发生了两个重大更改 #1 URL 已更改(我修改并托管了我自己的副本,导致 #2 type=rss 参数不再有效。
我只需要时间戳......所以开始了我一段时间以来写的最好/最差的黑客攻击。
第 1 步 - https://stackoverflow.com/a/3177718/9908 - 使用 chrome 禁用所有安全协议。
第 2 步 - https://gist.github.com/devdave/22b578d562a0dc1a8303
使用 contentscript.js 和 manifest.json,制作一个 chrome 扩展,在本地托管 ransack.js 到您想要的任何服务(PHP、Ruby、Python 等)。在开发者模式下安装你的 contentscript 扩展后转到https://history.google.com/history/ (解压)。它会自动将 ransack.js + jQuery 注入 dom,收集数据,然后转到下一个“稍后”链接。
每 60 秒,Google 会强制你随机重新登录,所以这不是一个开始并离开的过程,但它确实有效,如果他们加大了混淆的赌注,你总是可以求助于链接 Ajax 调用并将页面发送回用于后期处理的后端。全力以赴,我的可憎脚本每秒收集一页数据。
出于道德原因,我不会帮助任何人修改此脚本以获取搜索词和结果,因为此过程不受 Google 批准(尽管显然没有被阻止),并且仅将其推荐给有足够动力的个人以使其适合他们。根据我的估计,我需要 3-4 小时才能获得所有 9 年的数据(9 万条记录)@每 900 毫秒或更快的 1 页。
当这件事发生时,不要浏览网络的其余部分,因为 Chrome 正在运行而没有适当的保护措施,它们中的大多数存在是有原因的。
可以直接从 Google 下载她的搜索日志(如果使用脚本下载不是主要目的),
脚步:
1) 登录并转到https://history.google.com/history/
2) 在您的个人资料图片徽标下方,右侧,您可以找到一个设置图标。请参阅名为“下载”的第二个选项。点击那个。
3)然后点击“创建存档”,然后谷歌会在几分钟内将日志邮寄给你。
也许在发出请求以获取提要之前,脚本应该添加一个User-Agent
知名浏览器的 HTTP 标头,以便 Google 确定请求来自该浏览器。