采集练习(八) 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);
posted @ 2013-03-15 00:06  keygle  阅读(400)  评论(0编辑  收藏  举报