zoukankan      html  css  js  c++  java
  • 采集练习(八) 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);
    
  • 相关阅读:
    星空雅梦
    星空雅梦
    星空雅梦
    星空雅梦
    星空雅梦
    星空雅梦
    星空雅梦
    星空雅梦
    星空雅梦
    PHP中foreach用法详细讲解
  • 原文地址:https://www.cnblogs.com/keygle/p/2960624.html
Copyright © 2011-2022 走看看