您的位置:首页 > 编程语言 > PHP开发

采集练习(八) php 获得网易精彩跟贴数据

2013-03-15 00:06 183 查看
  自古网易出人才,网易评论是我每天必看的,网友的智慧是无限的,看网易评论长阅历,放松心情。刚好最近写采集 于是就分析下网易评论的数据,发现网易的数据也是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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: