ホームページ >php教程 >php手册 >六、电影排行榜

六、电影排行榜

WBOY
WBOYオリジナル
2016-06-07 11:42:451512ブラウズ

微信电影排行榜
在网上找了很久都没找到一个电影api,豆瓣电影api可以,可是要认证地址,麻烦,于是就找了一个网站,实时抓取数据了,由于我抓取的数据没有直接保存进数据库,so,过个过程会有点慢.先上效果图


1、入口界面
六、电影排行榜

2、排行榜页面
六、电影排行榜

3、今日排行(输入3.1)
六、电影排行榜

4、北美票房(3.2)
六、电影排行榜

5、香港票房 3.3
六、电影排行榜

6、电影收视榜 3.4
六、电影排行榜

7、电视收视榜 3.5
六、电影排行榜

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

休闲豆:http://www.xiuxiandou.com

AD:真正免费,域名+虚机+企业邮箱=0元

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。