测试地址比较私人,我私信你

解决方案 »

  1.   

           //模拟登陆获取cookie
    function getCookie(){
    $ch = curl_init();
    $url = 'http://portal.jnu.edu.cn/portal';

    $cookie_jar = dirname(__FILE__)."/pic.cookie";
    //@unlink($cookie_jar);
    $post = array('username'=>'*****','password'=>'******','userNameType'=>'cardID','action'=>'JnuLogin','submit'=>'%E7%99%BB%E5%BD%95');
    curl_setopt($ch,CURLOPT_URL,$url);
    curl_setopt($ch,CURLOPT_HEADER, 1);
    // 对认证证书来源的检查,0表示阻止对证书的合法性的检查。
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);

    // 从证书中检查SSL加密算法是否存在
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 1);

    //模拟用户使用的浏览器,在HTTP请求中包含一个”user-agent”头的字符串。
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)");

    curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1);

    $referer = 'http://card.jnu.edu.cn/platform/cc/index';
    curl_setopt($ch, CURLOPT_REFERER, $referer); //构造来路

    // 发送一个常规的POST请求,类型为:application/x-www-form-urlencoded,就像表单提交的一样。    
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS,  http_build_query($post));
    curl_setopt($ch,CURLOPT_AUTOREFERER,true);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

    curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_jar);
    curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_jar);

    $result = curl_exec($ch);

    preg_match('/Set-Cookie:(.*);/iU',$result,$str); //正则匹配
    var_dump($str);
    if (curl_errno($ch)) {
       print curl_error($ch);
       }
          
       $result = curl_exec($ch);
     // print($result);
       curl_close($ch);   
    }//获取cookie以后,访问这个地址
    $cookie_jar = dirname(__FILE__)."/pic.cookie";   
    $ch = curl_init();  
       $url = 'http://portal.jnu.edu.cn/portal/media-type/html/user/校园卡号/page/default.psml/js_pane/P-12b0f0396aa-10000';
       $referer = 'http://kygl.jnu.edu.cn/jnu/unieap/frame/left.jsp?app=personal';
       curl_setopt($ch, CURLOPT_REFERER, $referer); //构造来路
       curl_setopt($ch,CURLOPT_URL,$url);
       curl_setopt($ch,CURLOPT_HEADER, 0);
       curl_setopt($ch, CURLOPT_TIMEOUT, '3000');
       curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_jar);  
       curl_setopt($ch,CURLOPT_COOKIEJAR,dirname(__FILE__)."/new.cookie");
       curl_setopt($ch,CURLOPT_AUTOREFERER,true);
       curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1);
       curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)");    
       curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

       $result = curl_exec($ch);
       print($result);
    if (curl_errno($ch)) {
       print curl_error($ch);
       }    
       curl_close($ch); 
       @unlink(dirname(__FILE__)."/pic.cookie");