Sign up with your email address to be the first to know about new products, VIP offers, blog features & more.

制作个性化的知乎首页RSS

这篇文章是2014年7月发表在知乎的文章,算是自己的一个探索,至今都很好用哇,哇咔咔咔……

以下是正文:

原文地址:如何订阅个性化知乎首页rss?

 

说说整体思路:

环境配置:服务器+CMS+采集程序—->利用cookie抓取知乎首页链接中每个条目的标题和链接—->输出rss—->利用yahoo pipe做些修改并输出rss—>订阅—>done

1、准备工具及环境:

A.虚拟主机或VPS(具体选择可参考这里:免费资源部落|全球最新免费资源发布区

B.wordpress(其他能输出rss的cms亦可),官网:WordPress › China 简体中文

C.wp-autopost(采集程序,我不是插件作者,不做广告,我觉得好用才推荐的,你可替换为其他的采集程序):WordPress自动采集发布插件|WP-AutoPost

D.域名(具体选择可参考这里:免费资源部落|全球最新免费资源发布区

 

2、搭好上述几个环境后,就可以开始设置wp-autopost了。

A.进入wp-autopost主界面,点击“新建任务”,取名知乎首页,然后进入设置界面:

1c3cb3f8014359cccc2f0eff81bf9de9_r

B.“基本设置”

有几个要点:

更新时间间隔:8分钟(10分钟内,5分钟以上都可以,短了服务器压力大,长了知乎更新过快抓不全)

检测已抓取方式:URL+标题(重点!因为可以防止抓重复)

隐藏IP:必须勾选的,毕竟不知道会不会被ban。

当抓取文章URL出错时设置该URL状态为:已忽略

“文章来源设置”如图设置:

4f77dcb1a1ca1bb44e59ae8527690370_b (1)

“文章抓取设置”如图:

4f77dcb1a1ca1bb44e59ae8527690370_b

网站登录设置

选中“设置cookie”,然后看这篇教程:

如何获取并设置Cookie采集需要登录才能浏览的内容?|WordPress自动采集发布插件|WP-AutoPost

全部完毕后可以保存了。

 

3、设置主题显示自定义栏目(可选)

我默认用的是wp3.9自带的,其他的可以自行修改。

打开wp-content/themes/twentyfourteen下的content.php文件,在<!– .entry-content –>后面添加

<div class="realink" style="text-align: center;">
		<?php $name = get_post_meta($post->ID, '来源', true); if ($name) { echo "$name";} ?>
</div>

上面的“来源”你可以自定义。这样在文章正文里面就可以出现知乎抓取的文章链接了。

 

4、自定义输出rss。

打开wp-content/themes/twentyfourteen/function.php文件,最底部添加此代码:

//Feed 输出自定义字段
function fields_in_feed($content) {
	if(is_feed()) {
		$post_id = get_the_ID(); //获取文章ID
		$output = get_post_meta($post_id, '来源', true) ; // 获取字段的值
		$content = $content.$output;
	}
	return $content;
}
add_filter('the_content','fields_in_feed');

5、wordpress部分到此结束,rss地址为:

http://你的域名/archives/category/目录名/feed

打开网址Pipes: Rewire the web,注册一个雅虎账号,登陆,然后新建一个pipe(create a pipe)

具体设置如图:

QQ截图20150118141910

具体使用教程网上有,请伸手党自行搜索,简略说说:

A.点击fetch feed,填入上文中wordpress的rss地址

B.添加rename模块,两个空填写:item.content:encoded———–realink

C.添加regex模块,三个空分别填写:item.realink————– .*</p>([^”]+).*————– $1

D.添加create RSS,具体填写如图。

E.添加Pipe.output模块,获取最终地址,输出

F.点击右上角的“save”,然后pipe后台会自动开始抓取了。

6、打开自己的rss阅读器,PC推荐“Inoreader”,配合快捷键看知乎超爽(我受不了feedly那坑货了),移动端推荐news+(要安装inoreader的插件配合同步),订阅。

7、Enjoy:

4697df1ef0c7039b955564dc147916fd_r

快捷键:J下一个条目,K上一个条目,B后台打开。

总结:这样处理后,每天只需要专门抽出一个时间看知乎就可以了,高效又不会遗漏。

目前存在的缺陷:

1.此方案较为依赖yahoo pipe,这个服务虽然说已经存在很久,但是指不定哪天就会消失了,望各大神能补充。

2.无法抓取知乎专栏的文章,原因是知乎专栏采用了专栏现在主要以前端组装数据方式进行内容输出(为什么知乎专栏不支持 Pocket 抓取?),此采集器无法采集。我尝试过另一款叫做“八爪鱼采集器”(八爪鱼采集器),号称能支持AJAX(大势所趋——Ajax网页采集软件),试用后发现…..这软件写得真那啥。望懂行人士能推荐更好的选择。

3.尝试抓取知乎收藏夹,发现文章数量太大,容易宕机(可能是我的收藏夹数量比较多吧),各位同学可以试试。

4.Wordpress文章需要记得及时清理(否则影响运行效率),当然,你也可以使用这款插件:WordPress › Bulk Delete « WordPress Plugins

 


原创文章,欢迎转载,转载请保留:制作个性化的知乎首页RSS

No Comments Yet.

What do you think?

电子邮件地址不会被公开。 必填项已用*标注

Do NOT follow this link or you will be banned from the site!