失败的玩具

昨天一起来就看到GOOGLE READER要离我们而去了,开始是怎么都想不通,一番了解之后才发现原来GOOGLE READER的死早已注定。惋惜归惋惜,首要任务当然是寻找代替产品。去年开始喜欢上了玩豆瓣,所以就想把订阅的条目都搬到九点里去。我在九点里没有别的订阅,所以在页面里只看到一个输入框和一个添加按钮……难道这要我一条一条的加上去?怎么可能!用GOOGLE TAKEOUT可以导出OPML,这是一个XML文件,里面包含了我GOOGLE READER的订阅信息。用脚本解析OPML文件,然后用CURL自动提交到九点添加订阅条目,就是这么个简单的想法,以及这段简单的代码。嗯,我觉得连工具都算不上,只能算玩具=_=

//解析OPML获得订阅源信息
function get_url_list() {
	$url_list = array();
	$doc = new DOMDocument();
	$doc->load('./xml/subscriptions.xml');
	$element = $doc->getElementsByTagName('outline');
	foreach ($element as $e) {
		if ($e->hasAttribute('xmlUrl')) {
			$url_list[] = array(
				'title' => $e->getAttribute('title'),
				'htmlUrl' => $e->getAttribute('htmlUrl'),
			);
		}
	}
	return $url_list;
}

//用CURL向九点自动提交订阅
function subscript($sub_url) {	
	$url = 'http://9.douban.com/reader/subscription';
	$post_data = array(
		'url' => $sub_url
	);
	$ch = curl_init();
	curl_setopt($ch, CURLOPT_URL, $url);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
	curl_setopt($ch, CURLOPT_POST, 1);
	curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
	$out_put = curl_exec($ch);
	if ($out_put === FALSE)
		echo 'cURL Error:'.curl_error($ch);
	else
		echo $out_put;
	curl_close($ch);
}

//=======MAIN==============
$url_list = get_url_list();
foreach ($url_list as $url) {
	echo $url['title'].' : '.$url['htmlUrl'].'<br />';
	subscript($url['htmlUrl']);
	echo '<hr />';
}

本来以为这样就能完成订阅的搬迁,结果我再次进入九点发现订阅列表还是空空如也。仔细分析九点提交页面的源码以及脚本的执行结果后发现,提交是没有问题的,但是提交完成后九点并没有直接完成订阅操作,而是返回了一个JSON对象。

{"subscription":{"id":"9136865","unread":0,"is_new":true,"name":"xkcd.com"}}
对象中包含订阅条目的信息,原来这次提交仅仅是一次查询。接下来就是JS的工作了,我猜是从session里找到我的用户信息,然后发送ajax完成订阅(也是,我写的脚本里面没有我的用户信息,它怎么可能知道是谁提交的,要是订阅成功了才奇怪吧)。

就在我看着九点的源码为怎么把JS的工作也接管过来挠头的时候,我发现九点原来有导入OPML的功能……然后,就没有然后了。

没错,失败的玩具……沮丧之时把脚本修改了一下可以用CURL直接向GOOGLE或百度提交搜索请求,得到的输出结果就是搜索页面,和用搜索引擎搜索的结果一样(废话)。

PS:但是,最后我还是选择了FEEDLY……

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值