• QQ聊天机器人for PHP版 (登录,收、发消息)


    <?php
     
    include "http_no_cookie.class.php";
     
    class qq {
     
        public $sid;
        public $http;
        public $qq_num;
     
        function __construct() {
            $this->http = new http_no_cookie;
        }
     
        function login($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 "需要输入验证码";
                return 0;
                exit;
            }
     
            if(preg_match("/密码错误/",$data,$matches)){
                echo "密码错误";
                return 1;
                exit;
            }
            $action = preg_match("/sid=(.+?)&/", $data, $matches);
            $this->sid = $matches[1];
            return $this->sid;
        }
     
        function sendMsg($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;
        }
     
        function getMsg($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("<form", $data);
            $data = $data[0];
            preg_match_all("/<p>(.+)?</p>/", $data, $matches);
            unset($matches[1][0]);
            $result["content"] = $matches[1];
            return $result;
        }
        function logout($sid){
            $url="http://pt.3g.qq.com/s?sid=".$sid."&aid=nLogout";
            echo $url;
            echo $this->http->get($url);
        }
        function getFriendsList($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
     
    class http_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";
     
        public function get($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;
        }
     
        public function post($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

  • 相关阅读:
    爬虫练习
    爬取豆瓣电影top250
    简单爬虫
    正则提取子域名和ip
    用户体验培训总结
    测试经验总结
    项目管理知识总结
    读书笔记——《留住好员工:爱他们,还是失去他们?》
    ISTQB学习笔记
    数据结构和算法with Python
  • 原文地址:https://www.cnblogs.com/wawahaha/p/3333844.html
Copyright © 2020-2023  润新知