微信电影排行榜
在网上找了很久都没找到一个电影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元