GReader Archive - Google Reader 阅读历史存档下载工具
2013-06-05 10:16:04 旧日重来
Google Reader 将在 7月1日关闭。虽然谷歌官方提供了Take out用于导出用户数据,但导出的范围仅限订阅列表、关注列表、加星或分享过的条目之类,而阅读过的大部分内容则很难找回来了。GReader Archive 这个工具可以让大家从 Google Reader 下载到订阅数据源的所有历史数据。
GReader Archive 基于网上流传的 Google Reader 非官方 API,使用 Python 开发、跨平台,按 GPL 协议开源。值的注意的是,经 Aulddays 实验,谷歌的服务器对数据下载的 antispider 做的相当严格,所以程序中相应的对抓取速度做了限制,每下载一个数据文件(默认2000个条目一个数据文件)会等待 30 秒,因而总的抓取过程会比较长。例如像 Aulddays 这样重度(100+ subcription,已读 30w+ 条目)使用者,差不多花了 48 小时的时间。另外,随着 Google Reader 关闭的邻近,响应的下载接口可能随时也会关闭,所以需要下载数据的还要抓紧时间~~
下载和使用
点击这个链接进入 GReader Archive github 页面;也可以点击这里直接下载最新版的压缩包。
把下载的代码放在某个目录下,运行 run.py,提示输入 Google Reader 的账户信息,验证通过后即可开始下载。Linux 下一般已内建了对 Python 的支持。Windows 下可能需要另外安装 Python 组件后运行。Aulddays 在 Windows + Python 2.7 和 Linux + Python 2.6 下测试运行正常。Python 3.x 在语言上和 2.x 不太兼容,无法运行。
GReader Archive 不直接支持启用了两步验证的账户。可以考虑高级话题里的方法来绕过(感谢 @myqing)。
文件组织和硬盘空间
GReader Archive 下载的所有数据都会保存在 data
文件夹下。每个 RSS 订阅源会创建一个单独的文件夹,该订阅源的数据会按 2000 条一个文件的方式切分放在文件夹下。如果您的 Google Reader 账户中对订阅做了文件夹的组织,那么 data
文件夹中也会建立相应的子文件夹
由于每个订阅都会下载 Google Reader 中的全部历史数据(这个后面还会详说),最终占用的硬盘空间可能比较大。 Aulddays 的 100+ 个订阅源共产生了 2GB+ 的数据。所以下载前最好留出一些硬盘空间
断点续传
由于总下载时间会比较长,GReader Archive 支持断点续传。在下载过程中可以随时关闭程序。当下次启动时,如果输入的账户信息与之前相同的话,程序会给出下面的选项:
Unfinished download found. Continue (press c) or Start over again (press s)?:
此时选择 'c' 就可以继续上次未完成的下载了。
Antispider
谷歌的 Antispider 做的比较严,尽管程序里设置了抓取一个等待 30 秒,运行一段时间之后还是有可能被谷歌 Antispider 了,此时程序 log 里会打印如下信息:
2013-05-22 18:04:45,667 [INFO] Client IP antispidered. wait 1 hour and continue...遇到这种情况,可以有以下选择:
- 如果你的外网 IP 可以换(例如 ADSL,断线重连下有很大概率 IP 就换了),那么换新 IP 之后基本可以原地满血复活。如果不想等 1 个小时,那么可以配合上面的断点续传进行~~
- 如果 IP 是固定的,那么据经验看 4-5 个小时之后会解除 antispider,此后程序会自动继续
- 如果很久也没解除,建议关闭程序,等 24 小时后再断点续传
- 如果频繁被 antispider,可以考虑把等待时间改成一些,在 run.py 开始有一行:
waittime = 30
下载速度
某些朋友的网络访问谷歌可能不太顺畅,进而造成下载缓慢。GReader Archive 支持自定义谷歌服务器 IP,大家可以针对自己的情况将自定义 IP 写在 conf/customip.list
文件中,每行一个地址。有一个示例放在了 conf/customip.list.sample
,里面的 IP 可能(仅是可能)改进某些地区的下载速度,将它重命名为 customip.list
即可生效。
作者建议慎用自定义 IP 的功能,因为使用了非官方的地址可能会造成下载失败甚至账户信息泄露。建议使用时配合下面的高级话题。
高级话题
值得注意的是,对于一个 RSS 数据源,通过 GReader Archive 下载到的并不只是本账户阅读过的数据而是该 RSS 数据源的所有历史数据(更准确的说,是有任何一个用户在 Google Reader 上订阅了该数据源以来的所有数据)。也就是说,用任何一个账户登录都可以下载到 RSS 源的完整历史。基于这个特性,可以做一些有意思的事情,举例如下:
- 由于 Google Reader 使用了非官方的 API,为了保证我们的正常账户不受影响,又或者您的账户启用了两步验证无法用本工具直接下载,可以考虑找个马甲账户来运行。马甲账户中也无需一个一个手动添加订阅,用 Takeout 导出再导入即可。
- 假设某个订阅源需要单独下载(例如之前下载失败或有更新想重新下载),也可以使用马甲用户来搞定。
- 有些以前的网站现在已经关闭了,但其 RSS 内容很可能在 Google Reader 上还有存档,只要知道以前的 RSS 链接就可以下载到了。
查看:原文地址;来源:live.aulddays.com。
注意:本站所有文章除特别说明外均为原创,版权所有,转载请务必以超链接方式注明作者出处,并禁止用作商业用途