失败的玩具
来源:互联网 发布:房屋交易数据 编辑:程序博客网 时间:2024/04/28 20:37
昨天一起来就看到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);elseecho $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……
- 失败的玩具
- [东方宽频]玩具设计师的另类玩具
- 2017.3.14-9.1 玩具取名 失败总结
- 玩具鸭的奇遇
- 杂记 思考的玩具
- TA最喜欢的玩具
- hadoop,高富帅的玩具?
- 劳动节的玩具。。
- 神奇的玩具
- 欧塞奇的玩具确实不错。
- pic10f200的一段玩具代码
- 一些小玩具的网站
- mac 下的新玩具
- 蒜头君的玩具娃娃
- JZOJ 5276 神奇的玩具
- 【JZOJ 5276】 神奇的玩具
- linux上的一个玩具
- Q12 玩具制造商的销售预测
- Windows下FFmpeg-full-SDK-3.2开发环境搭建
- NSArray 倒序 输出
- SQL还原数据库
- PC端通过USB连接手机,检测手机端是否安装某个应用程序
- 详解IOS开发应用之并发Dispatch Queues
- 失败的玩具
- objective-c block 详解
- 数字图像处理知识体系小结
- Hibernate一些知识点
- ACM之好长的系列SHD
- Linux DD
- LayoutInflater
- CodeIgniter 中过的钩子流程
- CxImage内存方式转换图像