微信电影排行榜! q% W, H+ F5 d( d) @
在网上找了很久都没找到一个电影api,豆瓣电影api可以,可是要认证地址,麻烦,于是就找了一个网站,实时抓取数据了,由于我抓取的数据没有直接保存进数据库,so,过个过程会有点慢.先上效果图
7 w. F1 Q0 |. x
3 n% X6 o8 v: q1 a9 \
9 O- l9 `1 Z( ]8 a1、入口界面
5 p1 \- Z+ ?- P2 p; E3 T! e+ Y% t& |. l( `8 r% N8 n% N
2 C- W- |* S ^0 L' w
2、排行榜页面9 q) d- J' {' i; X- F, Y& {
+ T b8 R3 m8 t/ _0 i# h8 v& I* F, A
3、今日排行(输入3.1)
1 i) x) N$ x9 J4 m3 ^+ T4 q8 F5 Q: ?+ S+ v8 W
3 Q6 C w0 F1 f y1 S) [4 c8 a
4、北美票房(3.2)# v; p" t# i) }" O1 A) t+ i; w$ F
+ h# [. N+ s7 L3 ^# V* G, L
7 o/ _8 ?+ }6 o5、香港票房 3.34 e; e6 g' F# ^- H4 e i. _
`) h" j/ j7 u1 E5 ?5 C
3 R$ R7 \9 L! S" v0 ]0 c I6、电影收视榜 3.4) G) u* z3 C- a+ O
3 }/ R/ b0 X6 i) U* P% T# Y
6 ~$ Q7 H) v' o2 w+ t' X
7、电视收视榜 3.5
/ ^3 _% c& [) C5 O. |& X) l/ [7 G1 U) V$ V0 ^+ _3 B: K0 P
' J( M- ?8 w* j; \数据抓取来源: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-Length
length", - "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");
- }
- //----------------------------------------------------------------电影排行榜结束------------+ Y! `7 s, i0 [# a8 m2 A7 B
G4 r4 J- u+ l+ u M; h% n. Q7 N
|
上一篇:五、天气,在线计算、域名查询、ip归属、手机号下一篇:七、公交查询,百科,提问,词典,诗词
|