从今天起,保存你的“深夜食堂”

生活总是为一些突然的小点子所美好
——我说的 ^_^

喜欢用Pocket来保存我喜欢的文章,以前也跟风用过印象笔记(反正我觉得不好用,icon也丑得一逼),也喜欢用RSS来订阅博客或者其他站点的更新。而且,Pocket和RSS订阅的交互可以用IFTTT来联系。这种美好组合一直到我遇见知乎日报才结束,这货居然不提供RSS订阅。而其中,我最喜欢的一个栏目是深夜食堂,不管当时看不看,我都喜欢把它先存入我的Pocket,没事的时候可以看看。但是,要是我十天半月不去点开知乎日报的客户端,我特么就没办法存啊。。。然而,我总相信,能够有什么方法可以解决这个问题,也就产生了以下实践,共勉。


15年3月更新
youzhihu.com这个网站已经停止服务,推荐使用这个博主提供的RSS进行订阅。

00,准备工作

1,可用的深夜食堂HTML地址
2,一个生成RSS链接的工具,Feed43
3,一个能够强制生成全文的RSS工具,FeedEx
4,IFTTT账户,IFTTT
5,Pocket账户,Pocket
6,基础HTML/CSS知识(小白无影响,可以自动忽略)

01,找到地址

我们打开知乎日报客户端,找到深夜食堂,发现,卧槽,这货的地址是这种滴:http://www.zhihu.com/story/6546544。
可以看出,“深夜食堂”这个内容是保存在story这个目录下的,但是我们点开
http://www.zhihu.com/story
却会报错,也就是该目录是不允许访问的。那么这就需要第三方网站的支持了。

其实做知乎日报web版的有几个,这里,我选择的是一个V2EX上给我提供帮助的一个大哥/大姐写的网站——爱知乎。这个网站分类内容中提供的“深夜食堂”的入口,访问http://youzhihu.com/section/1 ,即可进入网页版“知乎日报-深夜食堂”。这里不研究该网站的实现方法,有兴趣请查看开源代码:https://github.com/nihgwu/iZhihu

02,制作RSS地址

RSS,聚合阅读,一般的地址是一个XML格式的页面,涵盖了标题、图片、内容等形式。RSS一直是一种方便和个性化的的工具,推荐大家使用这个工具来个性化自己的阅读内容。

制作RSS地址,我们使用Feed43FeedEx
1,制作一个初步的地址
打开Feed43,注册一个账户,激活后点击Creat your own feed

step1:如图所示,输入你要创建RSS的站点地址

点击reload/load会加载该站点的HTML代码

step2:分分析代码并添加搜索规则
加载完成后,在看见的HTML代码中

我们发现,主要内容的格式为div-a-img-aside-span这样,我们只需要把其中的动态内容用%、其他内容用 “**“这样的通配符进行匹配就可以完成建立地址的搜索规则。

所以,我的这个RSS搜索规则如上所示,复制粘贴一断div代码,然后在链接处,时间、标题处修改为”%”符号,在句末换行处添加”*”通配符。点击Extract即可显示出来匹配的内容

step3:RSS地址订阅显示规则
我们可以自定义该地址的标题、链接、内容的显示规则

我们把匹配出来的%1-%4进行分析,将标题、链接、内容对应填进去

点击Preview即可查看该RSS地址的效果

step4:自定义链接地址
由于Feed43提供自定义子目录名称,所以,我们可以自己修改RSS地址

我的这个地址就为http://feed43.com/zhihustory.xml

2,制作全文输出RSS地址
由于功能上的限制,Feed43并不支持全文输出(或者是我没有发现),所以我们得使用另外的工具进行输出,这里,我选择的是FeedEx
点击进入feedex,输入刚刚我们建立好的RSS网址http://feed43.com/zhihustory.xml

点击Go!即可生成一个强制全文输出的RSS地址。
虽然这个地址有点长,但是可用的。

03,使用IFTTT来自动保存我的“知乎日报-深夜食堂”更新

我们打开IFTTT,注册一个账户,打开Channels这个栏目

搜索Pocket

进入Pocket,进行Pocket和IFTTT的账户授权。这个过程和微博的授权差不多,就不详细讲了。
授权完成后如下所示

现在,回到My Recipes栏目

点击Creat a Recipe
看见ifthisthenthat(这就是IFTTT的由来)的页面

点击this

选择feed,再选择默认的第一个项目,只要有内容更新就进行操作

输入我们刚刚制作好的全文RSS地址

OK!再来弄that

和this类似,我们选择Pocket

再选择默认的aciton

再选择保存的项目,我们保存的内容如图所示,使用”+”进行添加删减,为了自动归类,为tag增加深夜食堂这一项。点击Creat Action。

好了,我们的的自动化就完成啦,在下边点击接收通知,装一个手机、平板上装一个IFTTT客户端就可以接收到保存的推送啦。

最后回到主页面,我们看到的应该是这样。

如果更新了,你会获得推送,就像这样滴

然后就等着今晚的深夜食堂更新吧。。。LOL

04,后续

关于IFTTT
IFTTT这个工具是很强大的,每个人都有不同的玩法,你也可以去看看自己的玩法,像我,就用来推送薇薇的私人博客更新~及时了解她的想法~~~嘿嘿。不过,由于在墙内,有许多整合墙外社交媒体的功能不能使用,同时IFTTT的推送有也可能延迟几分钟到十几分钟不等(也可能是iOS系统后台刷新时间的限制)。

关于这个RSS订阅的方法
其实在学爬虫的时候,我就很想自己写一个小程序来实现这个功能,也写了一个非常简单的抓取每日知乎日报热点内容的Python小程序,但是最终我还是发现使用别现成的HTML站点能够让事情更简单(好吧,是我嫌太麻烦)。后面会尝试在自己的博客上架设一个“深夜食堂”的页面出来。

关于知乎
知乎最近确实水了,不过就像我以前文章里说的,只有自己不断地增加自己的知识储备,才能认清别人是在忽悠,是在装逼还是在认真地回答问题。要回答一个问题是有成本的,要看一个答案怎么样也是有成本的。

关于“知乎日报-深夜食堂”
这个栏目我觉得好,是因为我喜欢听别人讲故事。我相信大多数的故事是真的,我相信美好也相信黑暗。

05,参考资料


更新:
1,经过两天的测试,发现该站点的“深夜食堂”栏目有些不稳定,会偶尔出现没有抓取到的情况,这是该站点的问题,我会联系作者尽快解决。
2,顺便做了一个“瞎扯-如何正确的吐槽”的全文RSS输出:http://feedex.net/feed/feed43.com/tucao.xml
3,上次居然忘了写“深夜食堂”的全文输出地址,真是惭愧,现在补上:http://feedex.net/feed/feed43.com/zhihustory.xml


就这样吧,互联网给生活带来的改变不光是阅读方式上的,还是创造方式上的。生活总是可以有许多的点子,好的点子会让你感受到美好。

Jas0ndyq敬上