欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

六、电影排行榜

程序员文章站 2022-05-29 20:50:11
...
微信电影排行榜
在网上找了很久都没找到一个电影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解析库,代码如下//----------------------------------------------------------------电影排行榜开始------------
//抓取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,"POST",$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='/(.*?)/is';//(?!六、电影排行榜 preg_match_all($preg2,$html,$match);
$data=$match[1];
$count=count($data);
$datas=array();
for($i=0;$i if($i>8){
break;
}
if($i==0){//第一张是图片
$datas[$i][] = $title;
$datas[$i][] = "";
$src_path=$data[$i];
$pattern="//";//抓取图片
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");
}

//----------------------------------------------------------------电影排行榜结束------------
六、电影排行榜

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

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