免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3538 | 回复: 12

[技术动态] google reader 备份 [复制链接]

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
发表于 2013-06-27 07:05 |显示全部楼层
本帖最后由 OwnWaterloo 于 2013-06-27 07:26 编辑

一直抱有侥幸心理: google reader 关闭会不会是一个愚人节玩笑。。。  马上就要7月了,看来是没希望了。。。
这年头google也不靠谱了。。。 赶紧备份吧。。。



  • history

    google reader相对于其他阅读器的牛x之处在于它有rss的历史。。。   不知道有没有类似的替代方案。。。 如果有的话,下面算是白折腾了。。。

  • url scheme

    对没有公开url scheme的网站,自己去猜简直就是坑。。。 google了一下,搜到两个比较有用的信息:

    i) authentication http://stackoverflow.com/questio ... der-of-a-given-feed

    http://www.google.com/reader/atom/feed/URL 需要认证。。。 那写http-client就会比较麻烦。。。
    http://www.google.com/reader/public/atom/feed/URL 就不需要了。。。


    ii) gr:continuation https://adityanag.com/journal/20 ... -archive-of-a-site/

    http://www.google.com/reader/public/atom/feed/URL?n=COUNT 可以得到 COUNT 条 entry 。经测试 COUNT 默认为 20, 最大为 1000 。
    如果返回的xml里有 gr:continuation 节点, 它的内容就可以用于继续下载。

    1. # 最新 20 条
    2. $ curl -sL 'http://www.google.com/reader/public/atom/feed/http%3A%2F%2Fokmij.org%2Fftp%2Frss.xml' | egrep -o '<gr:continuation>([^<]*)</gr:continuation>'
    3. <gr:continuation>CL2K65mn-bMC</gr:continuation>

    4. # 使用 c=CL2K65mn-bMC 就可以从 20 条之后继续下载, n=30 选择后续 30条
    5. $ curl -sL 'http://www.google.com/reader/public/atom/feed/http%3A%2F%2Fokmij.org%2Fftp%2Frss.xml?c=CL2K65mn-bMC&n=30' | egrep -o '<gr:continuation>([^<]*)</gr:continuation>'
    6. <gr:continuation>CLnN5sGQhK4C</gr:continuation>

    7. # CLnN5sGQhK4C 又可用于 50 条之后的查询
    复制代码
    当返回的xml里没有 gr:continuation 节点时就到末尾了。

  • atom-continuation-download

    于是写了个下载的脚本。。。 依赖bash(需要--enable-cond-regexp (info "(bash) Optional Features" )), curl, tail, date(其实没什么必要), mkdir.

    使用方法:

    1. # 下载 http://okmij.org/ftp/rss.xml 的所有历史
    2. $ atom-continuation-download http%3A%2F%2Fokmij.org%2Fftp%2Frss.xml

    3. # 每次获取 326 条
    4. $ atom-continuation-download http%3A%2F%2Fokmij.org%2Fftp%2Frss.xml 326

    5. # 传递一些参数给 curl
    6. $ CURL_OPTIONS='--socks5 localhost:1080 --silent' atom-continuation-download http%3A%2F%2Fokmij.org%2Fftp%2Frss.xml
    复制代码
    代码:

    1. #!/bin/bash

    2. count="${2:-1212}"
    3. rss="${1:-http%3A%2F%2Fokmij.org%2Fftp%2Frss.xml}"
    4. continuation="${rss}.continuation.txt"
    5. prev="${3:-$(tail -n 1 "$continuation" 2>/dev/null)}"

    6. if [ -z "$prev" ]; then
    7.     atom="${rss}-$(date +'%Y%m%d%H%M').xml"
    8.     url="http://www.google.com/reader/public/atom/feed/${rss}?n=${count}"
    9. else
    10.     mkdir -p "$rss"
    11.     atom="${rss}/${prev}.xml"
    12.     url="http://www.google.com/reader/public/atom/feed/${rss}?n=${count}&c=${prev}"
    13. fi

    14. echo "$url"
    15. if [[ "$(curl $CURL_OPTIONS -L "$url" | tee "$atom" )" =~ $(echo '<gr:continuation>([^<]*)</gr:continuation>') ]]
    16. then
    17.     next="${BASH_REMATCH[1]}"
    18.     echo "$next" >> "$continuation"
    19.     exec "$0" "$rss" "$counts" "$next"
    20. fi
    复制代码
  • urlencode

    atom-continuation-download 不负责 urlencode , 要求传递给它的 url 必须是 encoded 。 (其实原始的 url 传递给 curl 也是可以的, 只是创建文件名会比较麻烦)。
    urlencode这工作说容易也容易, python, perl, php, ... 都可以做。 难的地方是: 使用环境上有python/perl... 吗?
    是在代码里使用其中一种(比如python), 然后在只有perl的机器上重写相关的部分?
    还是在代码里将所知道的方法都写上,然后在目标机器上进行测试? 怎么让我想起了万恶的 ./configure 。。。

    于是没有将urlencode写在download的代码里。 而是单独用 curl + nc + tail 写了一个。。。用法:

    1. $ urlencode 'http://www.4clojure.com/problems/rss'
    2. http%3A%2F%2Fwww.4clojure.com%2Fproblems%2Frss

    3. $ atom-continuation-download $(urlencode 'http://www.4clojure.com/problems/rss')
    复制代码
    代码:

    1. #!/bin/sh
    2. nc -l "${URLENCODE_PORT:-1212}" | tail -n 1 &
    3. curl --silent --max-time 1 --data-urlencode "${1:-http://okmij.org/ftp/rss.xml}" "localhost:${URLENCODE_PORT:-1212}"
    复制代码
  • future

    长久之计?

    选择一个google reader的替代品? 没仔细留意, 不过得到的消息都是新选择的阅读器不支持历史。。。
    自己从现在开始为rss在本地记录历史?  那这两天来不及发现的好站的历史可能就没了。。。 看google reader是只关闭web界面还是连api一起给关了。。。
    还是说不通过rss, 对喜欢的网站直接web scraping。。。  不过弄好了自己没时间看也是个问题啊。。。

    总之。。。  暂时先把数据抓到本地再说。。。  否则可能就来不及了。。。

论坛徽章:
4
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:11
发表于 2013-06-27 07:17 |显示全部楼层
沙发………………………………

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-06-17 22:20:00每日论坛发贴之星
日期:2015-06-17 22:20:00
发表于 2013-06-27 08:10 |显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
1
白羊座
日期:2014-03-22 18:23:03
发表于 2013-06-27 10:38 |显示全部楼层
好久不见= =。

论坛徽章:
0
发表于 2013-06-27 10:57 来自手机 |显示全部楼层
写http client如果遇到认证的问题可以在请求header里写入cookie,难点在哪里呢?

论坛徽章:
3
CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-03-13 15:38:15CU大牛徽章
日期:2013-03-13 15:38:52
发表于 2013-06-27 16:50 |显示全部楼层
本帖最后由 wulien88 于 2013-06-27 16:51 编辑

替代产品多了去了,AOL,InoReader,Digg Reader,而且都可以用google账号直接导入的,方便的很

论坛徽章:
6
寅虎
日期:2013-10-10 21:59:16狮子座
日期:2013-11-12 09:24:41金牛座
日期:2013-12-14 17:02:23酉鸡
日期:2014-01-16 12:34:37技术图书徽章
日期:2014-02-15 12:52:31巨蟹座
日期:2014-05-17 14:09:52
发表于 2013-06-27 16:57 |显示全部楼层
我选了鲜果,很显然没google reader哪么爽 , 不过还凑合.

论坛徽章:
1
技术图书徽章
日期:2013-09-10 08:57:55
发表于 2013-06-28 14:58 |显示全部楼层
用下看看。

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
发表于 2013-06-28 18:02 |显示全部楼层
wulien88 发表于 2013-06-27 16:50
替代产品多了去了,AOL,InoReader,Digg Reader,而且都可以用google账号直接导入的,方便的很


它们支持获取rss的历史吗?

论坛徽章:
11
技术图书徽章
日期:2014-03-01 14:44:34天蝎座
日期:2014-05-21 22:11:59金牛座
日期:2014-05-30 17:06:14
发表于 2013-06-28 18:16 |显示全部楼层
Google有个人数据倒出工具takeout,可能要翻GFW
https://www.google.com/takeout/#custom:reader
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

SACC2019中国系统架构师大会

【数字转型 架构演进】SACC2019中国系统架构师大会,8.5折限时优惠重磅来袭!
2019年10月31日~11月2日第11届中国系统架构师大会(SACC2019)将在北京隆重召开。四大主线并行的演讲模式,1个主会场、20个技术专场、超千人参与的会议规模,100+来自互联网、金融、制造业、电商等领域的嘉宾阵容,将为广大参会者提供一场最具价值的技术交流盛会。

限时8.5折扣期:2019年9月30日前


----------------------------------------

大会官网>>
  

北京盛拓优讯信息技术有限公司. 版权所有 16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122
中国互联网协会会员  联系我们:huangweiwei@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP