qq网页机器人php,QQ聊天机器人-php原理

include"http_no_cookie.class.php";

classqq {

public$sid;

public$http;

public$qq_num;

function__construct() {

$this->http =newhttp_no_cookie;

}

functionlogin($qq_num,$qq_pwd) {

echo $data=$this->http->get("http://pt.3g.qq.com/");

$action= preg_match("/action=\"(.+)?\"/",$data,$matches);

$action=$matches[1];

$params=array();

$params["login_url"] ="http://pt.3g.qq.com/s?aid=nLogin";

$params["sidtype"] = 1;

$params["loginTitle"] ="手机腾讯网";

$params["bid"] = 0;

$params["qq"] =$qq_num;

$params["pwd"] =$qq_pwd;

$params["loginType"] =1;

echo$data=$this->http->post($action, http_build_query($params));

if(preg_match("/http:\/\/vc.gtimg.com\//",$data,$matches)){

echo"需要输入验证码";

return0;

exit;

}

if(preg_match("/密码错误/",$data,$matches)){

echo"密码错误";

return1;

exit;

}

$action= preg_match("/sid=(.+?)&/",$data,$matches);

$this->sid =$matches[1];

return$this->sid;

}

functionsendMsg($to_num,$msg,$sid= 0) {

$sid=$sid?$sid:$this->sid;

if(!$sid)

exit("sid值未传入进去");

$params=array();

$params["msg"] =$msg;

$params["u"] =$to_num;

$params["saveURL"] = 0;

$params["do"] ="send";

$params["on"] = 1;

$params["aid"] ="发送";

$url="http://q16.3g.qq.com/g/s?sid=".$sid;

echo$data=$this->http->post($url, http_build_query($params));

return$data;

}

functiongetMsg($qq_num= 0,$sid= 0) {

$qq_num=$qq_num?$qq_num:$this->qq_num;

if(!$qq_num)

exit("qq_num值未传入进去");

$sid=$sid?$sid:$this->sid;

if(!$sid)

exit("sid值未传入进去");

$url="http://q16.3g.qq.com/g/s?sid=".$sid."&3G_UIN=".$qq_num."&saveURL=0&aid=nqqChat";

$data=$this->http->get($url);

preg_match("/name=\"u\" value=\"(\d+)\"/",$data,$matches);

$result["qq"] =$matches[1];

$data=explode("

$data=$data[0];

preg_match_all("/

(.+)?/",$data,$matches);

unset($matches[1][0]);

$result["content"] =$matches[1];

return$result;

}

functionlogout($sid){

$url="http://pt.3g.qq.com/s?sid=".$sid."&aid=nLogout";

echo$url;

echo$this->http->get($url);

}

functiongetFriendsList($qq_num= 0,$sid= 0){

$result=array();

$qq_num=$qq_num?$qq_num:$this->qq_num;

if(!$qq_num)

exit("qq_num值未传入进去");

$sid=$sid?$sid:$this->sid;

if(!$sid)

exit("sid值未传入进去");

$url="http://q16.3g.qq.com/g/s?aid=nqqchatMain&sid=".$sid."&myqq=".$qq_num;

while(true){

$i=1;

$url.="&p=".$i;

$data=$this->http->get($url);

preg_match_all("/u=(.+?)&/",$data,$matches);

foreach($matches[1]as$key=>$value){

$result[]=$value;

}

if(count($matches[1])<13)

break;

$i++;

}

return$result;

}

}

//PHP代码

classhttp_no_cookie {

private$curl;

public$user_agent="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.29 Safari/525.13";

publicfunctionget($url) {

$this->curl = curl_init();

curl_setopt($this->curl, CURLOPT_CONNECTTIMEOUT, 8);

curl_setopt($this->curl, CURLOPT_URL,$url);

curl_setopt($this->curl, CURLOPT_HEADER, 0);

curl_setopt($this->curl, CURLOPT_USERAGENT,$this->user_agent);

curl_setopt($this->curl, CURLOPT_RETURNTRANSFER, 1);

$data= curl_exec($this->curl);

curl_close($this->curl);

return$data;

}

publicfunctionpost($url,$params) {

$this->curl = curl_init();

curl_setopt($this->curl, CURLOPT_CONNECTTIMEOUT, 8);

curl_setopt($this->curl, CURLOPT_URL,$url);

curl_setopt($this->curl, CURLOPT_HEADER, 1);

curl_setopt($this->curl, CURLOPT_FOLLOWLOCATION, true);

curl_setopt($this->curl, CURLOPT_POST, 1);

curl_setopt($this->curl, CURLOPT_USERAGENT,$this->user_agent);

curl_setopt($this->curl, CURLOPT_POSTFIELDS,$params);

curl_setopt($this->curl, CURLOPT_RETURNTRANSFER, 1);

$data= curl_exec($this->curl);

curl_close($this->curl);

return$data;

}

}

?>

原文:http://lvxinwei.sinaapp.com/961.html

小编推荐:欲学习电脑技术、系统维护、网络管理、编程开发和安全攻防等高端IT技术,请 点击这里注册账号,公开课频道价值万元IT培训教程免费学,让您少走弯路、事半功倍,好工作升职加薪!

免责声明:本站系公益性非盈利IT技术普及网,本文由投稿者转载自互联网的公开文章,文末均已注明出处,其内容和图片版权归原网站或作者所有,文中所述不代表本站观点,若有无意侵权或转载不当之处请从网站右下角联系我们处理,谢谢合作!

你可能感兴趣的:(qq网页机器人php)