[微信查询接口] 六、电影排行榜

[复制链接]
发表于 2014-2-2 13:50:56 | 显示全部楼层 |阅读模式
微信电影排行榜* H6 S8 c. a( e2 s4 m
在网上找了很久都没找到一个电影api,豆瓣电影api可以,可是要认证地址,麻烦,于是就找了一个网站,实时抓取数据了,由于我抓取的数据没有直接保存进数据库,so,过个过程会有点慢.先上效果图
! u( j/ H, w. K6 k. d+ V0 p. y( y4 n; r, Y& K7 v$ d

7 F# ~- E' j0 }2 f, X* ^9 e$ I1、入口界面
( K+ z* O  Y, l1 o' ?- `+ o$ R+ |6 R
, u& W3 y2 M: z' B6 W$ r" F
2、排行榜页面
0 ^8 W. Q2 @8 @5 e3 e3 [1 ]. j+ G; S+ z6 U5 [2 ~2 }% {. K: }, p
4 d0 q. p  v$ L8 h* \4 I" A" W
3、今日排行(输入3.1)2 H3 Q9 \. q# `8 ~  y; X
9 @6 ?/ r8 n3 D  A/ v" V2 [

: O7 ]/ \' X0 c$ E- j  c. r4、北美票房(3.2)! v6 O: U$ a1 N3 ^; }" d

# A4 y. Z+ t! p1 h; W
  ^' q4 S# M  Q* a+ [! I5 W7 B: L5、香港票房 3.31 B0 a+ Z3 c( D/ r: A- j
* p- O' N+ J7 |. L  a
9 w' H! A* z2 q0 o, ^
6、电影收视榜 3.4
' f+ S, j; n" L7 X+ X, j& s3 Y% R" D2 ?+ e2 x

% b% H! s# ^% v) {7、电视收视榜 3.50 Q' o( c2 [) j1 H- {
1 b' u( }! x5 |& v7 _+ V- p
& P, Q. ]2 o3 c+ @- P; e/ I) D
数据抓取来源:http://data.entgroup.cn ,使用到了simple_html_dom html解析库,代码如下
  • //----------------------------------------------------------------电影排行榜开始------------
  •     //抓取http://data.entgroup.cn/电影数据
  •     private function _movie_comm($url,$param="",$title=""){
  •         //设置头内容
  •         $length=empty($param)?0:19;//好吧,我这里写死了长度..
  •         $header=array(
  •             "Accept-Encoding:gzip,deflate,sdch",
  •             "Accept-Language:zh-CN,zh;q=0.8",
  •             "Content-Lengthlength",
  •             "Content-Type:application/json; charset=UTF-8",
  •             "Host:data.entgroup.cn",
  •         );
  •         $reArr=http($url,$param,"OST",$header);
  •         Log::write("url ->$url , param =$param ,head =>".print_r($header,true));
  •         $data=json_decode($reArr);
  •         if(empty($data)){
  •             return array("未找到数据,请检查网络或稍后再试试看。","text");
  •         }
  •         $html=$data->d;
  •         $preg2='/<a .*?>(.*?)<\/a>/is';//(?!<img)//取出所有信息(包括第一张图片)
  •         preg_match_all($preg2,$html,$match);
  •         $data=$match[1];
  •         $count=count($data);
  •         $datas=array();
  •         for($i=0;$i<$count;$i++){
  •             if($i>8){
  •                 break;
  •             }
  •             if($i==0){//第一张是图片
  •                 $datas[$i][]        =    $title;
  •                 $datas[$i][]        =    "";
  •                 $src_path=$data[$i];
  •                 $pattern="/<[img|IMG].*?src=[\'|\"](.*?(?:[\.gif|\.jpg]))[\'|\"].*?[\/]?>/";//抓取图片
  •                 preg_match_all($pattern,$src_path,$image_match);
  •                 $datas[$i][]        =    $image_match[1][0];
  •                 $datas[$i][]        =    "";
  •             }else{
  •             
  •                 $datas[$i][]        =    "{$i}、".$data[$i];
  •                 $datas[$i][]        =    "";
  •                 $datas[$i][]        =    "";
  •                 $datas[$i][]        =    "";
  •             }
  •         }
  •         $datas[$count][]        =    "小助手:回复 ? 进入到主菜单。";
  •         $datas[$count][]        =    "";
  •         $datas[$count][]        =    "";
  •         $datas[$count][]        =    "";
  •         return array($datas,"news");
  •     }
  •     //今日票房
  •     public function get_today(){
  •         return $this->_movie_comm("http://data.entgroup.cn/BoxOffice/movieData/Movie.aspx/BindDayList","今日票房");
  •     }
  •     private function _get_week_id($find_id){
  •       import("@.ORG.simple_html_dom",null,".php");
  •       $html= file_get_html("http://data.entgroup.cn/boxoffice/oversea");
  •       $ele=$html->find("$find_id option",0);
  •       return $ele?$ele->value:null;
  •     }
  •     //北美票房
  •     public function get_na(){
  •         $weekId=$this->_get_week_id("#week2");
  •         $param="{ 'weekId': '$weekId'}";
  •         return $this->_movie_comm("http://data.entgroup.cn/BoxOffice/movieData/oversea.aspx/BindUSAList",$param,"北美票房");
  •     }
  •     //香港票房
  •     public function get_hk(){
  •         $weekId=$this->_get_week_id("#week1");
  •         $param="{ 'weekId': '$weekId'}";
  •         return $this->_movie_comm("http://data.entgroup.cn/BoxOffice/movieData/oversea.aspx/BindHongKongList",$param,"香港票房");
  •     }
  •     //电影收视,电视收视共同
  •     private function _send_movie_comm($url,$match,$title,$image){
  •         import("@.ORG.simple_html_dom",null,".php");
  •          $html= file_get_html($url);
  •         $ok_datas=$html->find($match);
  •         $datas=array();
  •         $i=0;
  •         foreach($ok_datas as $row){
  •             if($i>9){
  •                 break;
  •             }
  •             if($i==0){//第一张是图片
  •                 $datas[$i][]        =    $title;
  •                 $datas[$i][]        =    "";
  •                 $datas[$i][]        =    "http://www.aidemofang.com.img.800cdn.com/Public/home/images/$image";
  •                 $datas[$i][]        =    "";
  •             }else{
  •             
  •                 $datas[$i][]        =    "{$i}、".trim($row->plaintext);
  •                 $datas[$i][]        =    "";
  •                 $datas[$i][]        =    "";
  •                 $datas[$i][]        =    "";
  •             }
  •             $i++;
  •         }
  •         $datas[$i][]        =    "小助手:回复 ? 进入到主菜单。";
  •         $datas[$i][]        =    "";
  •         $datas[$i][]        =    "";
  •         $datas[$i][]        =    "";
  •    
  •         return array($datas,"news");
  •     }
  •     //电影收视榜
  •     public function get_movie(){
  •         $url="http://data.entgroup.cn/ratings/film";
  •         $match=".person .trs a";//查找指定的所有a标签数据
  •         return $this->_send_movie_comm($url,$match,"电影收视榜","movie.jpg");
  •     }
  •     //电视收视榜
  •     public function get_tv(){
  •         $url="http://data.entgroup.cn/ratings/tv";
  •         $match=".person .trs a";//查找指定的所有a标签数据
  •         return $this->_send_movie_comm($url,$match,"电视收视榜","tv.jpg");        
  •     }
  • //----------------------------------------------------------------电影排行榜结束------------! A4 h  ^: N" `4 |
+ W+ z4 C! l% `




上一篇:五、天气,在线计算、域名查询、ip归属、手机号
下一篇:七、公交查询,百科,提问,词典,诗词
回复

使用道具 举报

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

快速回复 返回顶部 返回列表