采集练习(八) php 获得网易精彩跟贴数据
自古网易出人才,网易评论是我每天必看的,网友的智慧是无限的,看网易评论长阅历,放松心情。刚好最近写采集 于是就分析下网易评论的数据,发现网易的数据也是json形式加载过来的。
可以采集的 评论有:
精彩跟帖 http://tie.163.com/plaza/recommend.html
精彩盖楼 http://tie.163.com/plaza/build.html
网友热议 http://tie.163.com/plaza/topVote.html
下面只以网易精彩跟帖做例子分析采集:
网易精彩跟帖 http://tie.163.com/plaza/recommend.html 有3页 90条跟帖
用chrome 打开网址 在 开发者工具 -> console 下 可以看到 网页上的数据来自 http://tie.163.com/plaza/data/1/recommend.html 这是第一页的数据
返回一个 var replyData={"totalNum":90,"finePosts":xxxx........xxxxxx}; 的js对象;
其实这个js对象 去掉 开头的 'var replyData=' 和末尾的 ';' 就是个json ;
于是php就可以用json_decode函数转化为数组了;
/** * Created by JetBrains PhpStorm. * User: keygle * From: www.cnblogs.com/keygle * Date: 13-3-14 * Time: 下午10:58 * * 获得网易精彩跟帖 3页 90条数据 */ $conmentData = array(); for($i=1;$i<4;$i++){ $conments = array(); $recommend= 'http://tie.163.com/plaza/data/'.$i.'/recommend.html'; $strData = @file_get_contents($recommend); $commentJson = ltrim($strData,'var replyData='); //去掉 字符串开头的 var replyData= $commentJson = rtrim($commentJson,';'); //去掉 字符串末尾的 ; $conments = json_decode($commentJson,true); foreach($conments['finePosts'] as $val): $conmentData[] = $val; endforeach; } //print_r($conmentData);