优酷来疯直播间模拟登录群发信息
来疯直播间模拟登录,抓取正在直播的房间ID并群发信息,来疯首页http://www.laifeng.com/,代码注释每个方法前都写的很清楚,我想这么几行代码没办要每行都加注释吧?请大家注意口德最底行有DEMO下载地址
代码<?php
//使用时必须先配置
//$cookiefile(COOKIE 存放路径)
//$user(用户名,优酷土豆来疯都行)
//$pass(密码,优酷土豆来疯都行);
class laifeng
{
//cookie存放路径
private $cookiefile = "cookie.txt";
//房间号
private $id;
//用户名
private $user='1234@qq.com';
//密码
private $pass=12345678;
//初始化ID
public function __construct($idd=null){
$this->id=$idd;
}
//模拟登录获取yktk
public function getkey()
{
$user=urldecode($this->user);
$pass=urldecode(md5($this->pass));
$url = "http://www.laifeng.com/login/";
$data = "userName=".$user."&password=".$pass."&forever=1&returnurl=http%3a%2f%2fwww.laifeng.com%2f7437";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_COOKIEJAR, $this->cookiefile);
curl_setopt($ch, CURLOPT_COOKIEFILE, $this->cookiefile);
curl_setopt($ch, CURLOPT_REFERER, "http://www.laifeng.com/login/");
curl_setopt($ch, CURLOPT_USERAGENT,"Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)");
$info = curl_exec($ch);
curl_close($ch);
$y = json_decode($info, true);
$yktk = $y['response'];
return $yktk;
}
//获取cookie
private function login(){
$yktk=$this->getkey();
if($yktk['code']!=0){
echo $yktk['msg'];
exit();
}else{
$url=$yktk['data'];
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_HEADER,1);
curl_setopt($ch,CURLOPT_COOKIEFILE,$this->cookiefile);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_REFERER,"http://www.laifeng.com/".$this->id);
curl_setopt($ch,CURLOPT_COOKIEJAR,$this->cookiefile);
curl_exec($ch);
curl_close($ch);
echo("<script>location.reload();</script>");
return $yktk['msg'];
//echo $y;
}
}
//输出页面
public function curl(){
$this->login();
$url="http://www.laifeng.com/".$this->id;
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_HEADER,0);
curl_setopt($ch,CURLOPT_COOKIEFILE,$this->cookiefile);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_REFERER,"http://www.laifeng.com/".$this->id);
curl_setopt($ch,CURLOPT_COOKIEJAR,$this->cookiefile);
$info=curl_exec($ch);
$info=str_replace('room/js','http://static.youku.com/ddshow/8125f00c/room/js',$info);
curl_close($ch);
return $info;
}
//获取用户名
public function top(){
$url="http://www.laifeng.com";
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_HEADER,1);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_REFERER,"http://www.laifeng.com/");
curl_setopt($ch,CURLOPT_COOKIEFILE,$this->cookiefile);
$m=curl_exec($ch);
curl_close($ch);
$mate="@<a class=\"user-name-link\" href=\"/my/profile/init\" target=\"_blank\" title=\"(.*)\">@iUs";
preg_match_all($mate,$m,$arr);
if(@$arr){
echo $arr;
}else{
echo("<script>alert('登录超时,正在尝试自动登录.....');</script>");
echo $this->login();
}
}
//发送信息模板
public function msg($msg,$url){
//$url="http://www.laifeng.com/room/7437/chat/save";
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_HEADER,0);
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_REFERER,"http://www.laifeng.com/".$this->id);
curl_setopt($ch,CURLOPT_POSTFIELDS,$msg);
curl_setopt($ch,CURLOPT_COOKIEFILE,$this->cookiefile);
$info=curl_exec($ch);
curl_close($ch);
$arr=json_decode($info,true);
if($arr['response']['code']==-2){
echo("<script>alert('登录超时,正在尝试自动登录.....');</script>");
echo $this->login();
}else{
echo $arr['response']['msg'];
}
}
//发送文字 参数为发送内容
public function msgtxt($data){
$msg="single=0&content=".urlencode($data)."&anchorId=0&roomId=".$this->id;
$url="http://www.laifeng.com/room/".$this->id."/chat/save";
return $this->msg($msg,$url);
}
//送花参数为数量
public function flower($data=1){
$msg="roomId=".$this->id."&quantity=".$data;
$url="http://www.laifeng.com/room/".$this->id."/star/send";
return $this->msg($msg,$url);
}
//抓取正在直播的ID
}//laifeng class
class exe{
//抓取房间ID
public function anchor($pageid=1){
$page=file_get_contents("http://www.laifeng.com/anchor/search?pageNo=".$pageid);
//$count=file_get_contents("http://www.laifeng.com/anchor/search");
$mage="@<p class=\"name\">(.*)<a href=\"/(.*)\" title=\"(.*)\" target=\"_blank\">(.*)</a>@iUs";
$match="@//总页数(.*)totalNum:(.*),(.*)//当前页数@iUs";
preg_match_all($mage,$page,$arr);
preg_match_all($match,$page,$pagecount);
$page=array();
$page['count']=$pagecount;
$page['data']=$arr;
return $page;
}
//抓取房间总页数
public function pagecount(){
$page=file_get_contents("http://www.laifeng.com/anchor/search");
$match="@//总页数(.*)totalNum:(.*),(.*)//当前页数@iUs";
preg_match_all($match,$page,$arr);
echo $arr;
}
}
//$exe=new exe();
//$exe->pagecount();
//$arr=$exe->anchor(1);
//foreach($arr as $k=>$v){
// $lai=new laifeng($v);
// echo"房间ID:".$v." ";
// echo $lai->msgtxt('嗨');
// echo"<br />";
//}
//echo $lai->msgtxt("这是一段测试文字1234");
//for($i=7437;$i<=7439;$i++){
// $lai=new laifeng($i);
// echo $lai->msgtxt("1111");
//}
//$lai->flower(1);
//echo $lai->curl();
?> 赞!:mrgreen: 不错。楼主从哪整来的源码。
页:
[1]