亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Python > 正文

采用python實現簡單QQ單用戶機器人的方法

2020-02-23 05:31:30
字體:
來源:轉載
供稿:網友

采用python實現簡單QQ單用戶機器人的方法如下:

一、首先我們查看一下關于3GQQ的相關協議:
    對此,打開一個支持WAP的瀏覽器,可以使用Firefox的wmlbrowser插件,打開FF后,訪問地址 https://addons.mozilla.org/zh-CN/firefox/search/?q=wmlbrowser&cat=all&x=17&y=11
  
二、進入3GQQ的進行協議分析
    3GQQ的地址是:http://pt.3g.qq.com/s?aid=nLogin3gqq 用安裝了wmlbrowser插件的FF打開頁面后,啟用firebug,即可實現監視提交的數據。

三、源代碼部分:

#coding:utf-8#基于python2.6版本開發import httplib,urllib,os,threading,reimport sysreload(sys)sys.setdefaultencoding('utf8')class PYQQ:  def __init__(self):    self.reqIndex = 0    #HTTP請求  def httpRequest(self,method,url,data={}):    try:      _urld = httplib.urlsplit(url)      conn = httplib.HTTPConnection(_urld.netloc,80,True,3)      conn.connect()      data = urllib.urlencode(data)      if method=='get':        conn.putrequest("GET", url, None)        conn.putheader("Content-Length",'0')      elif method=='post':        conn.putrequest("POST", url)        conn.putheader("Content-Length", str(len(data)))        conn.putheader("Content-Type", "application/x-www-form-urlencoded")            conn.putheader("Connection", "close")      conn.endheaders()            if len(data)>0:        conn.send(data)      f = conn.getresponse()      self.httpBody = f.read().encode('utf8')      f.close()      conn.close()    except:      self.httpBody=''    return self.httpBody  #通過首尾獲取字符串的內容  def getCon(self,start,end):    findex = self.httpBody.find(start)    if findex == -1 : return None    tmp = self.httpBody.split(start)        eindex = tmp[1].find(end)    if eindex == -1:      return tmp[1][0:]    else:      return tmp[1][0:eindex]  #獲取postfield的值  def getField(self,fd):    KeyStart = '')  #獲取登陸驗證碼,并保存至當前目錄的qqcode.gif  def getSafecode(self):    url = self.getCon('python_實現簡單QQ單用戶機器人    import urllib2    pager = urllib2.urlopen(url)    data=pager.read()    file=open(os.getcwd()+'/qqcode.gif','w+b')    file.write(data)    file.close()    return True  #登陸QQ  def login(self):    self.qq = raw_input('請輸入QQ號:'.encode('gbk'))    self.pwd = raw_input('請輸入密碼:'.encode('gbk'))    s1Back = self.httpRequest('post','http://pt.3g.qq.com/handleLogin',{'r':'240971315','qq':self.qq,'pwd':self.pwd,'toQQchat':'true','q_from':'','modifySKey':0,'loginType':1})    if s1Back.find('請輸入驗證碼')!=-1:      self.sid = self.getField('sid')      self.hexpwd = self.getField('hexpwd')      self.extend = self.getField('extend')      self.r_sid = self.getField('r_sid')      self.rip = self.getField('rip')      if self.getSafecode():        self.safeCode = raw_input('請輸入驗證碼(本文件同目錄的qqcode.gif):')      else:        print '驗證碼加載錯誤'            postData = {'sid':self.sid,'qq':self.qq,'hexpwd':self.hexpwd,'hexp':'true','auto':'0',            'logintitle':'手機騰訊網','q_from':'','modifySKey':'0','q_status':'10',            'r':'271','loginType':'1','prev_url':'10','extend':self.extend,'r_sid':self.r_sid,            'bid_code':'','bid':'-1','toQQchat':'true','rip':self.rip,'verify':self.safeCode,      }      s1Back = self.httpRequest('post','http://pt.3g.qq.com/handleLogin',postData)        self.sid = self.getCon('sid=','&')    #print self.sid    print '登陸成功'.encode('gbk')    self.getMsgFun()    #定時獲取消息  def getMsgFun(self):    self.reqIndex = self.reqIndex + 1    s2Back = self.httpRequest('get','http://q32.3g.qq.com/g/s?aid=nqqchatMain&sid='+self.sid)    if s2Back.find('alt="聊天"/>(')!=-1:      #有新消息,請求獲取消息頁面      s3back = self.httpRequest('get','http://q32.3g.qq.com/g/s?sid='+ self.sid + '&aid=nqqChat&saveURL=0&r=1310115753&g_f=1653&on=1')            #消息發起者的昵稱      if s3back.find('title="臨時會話')!=-1:        _fromName = '臨時對話'      else:        _fromName = self.getCon('title="與','聊天')            #消息發起者的QQ號      _fromQQ = self.getCon('num" value="','"/>')            #消息內容      _msg_tmp = self.getCon('saveURL=0">提示)',/'<input name="msg"/')      crlf = '/n'      if _msg_tmp.find('/r/n')!=-1: crlf = '/r/n'      _msg = re.findall(r'(.+)'+ crlf +'(.+)',_msg_tmp)            for _data in _msg:        self.getMsg({'qq':_fromQQ,'nick':_fromName,'time':_data[0],'msg':str(_data[1]).strip()})        if self.reqIndex>=30:      #保持在線      _url = 'http://pt5.3g.qq.com/s?aid=nLogin3gqqbysid&3gqqsid='+self.sid      self.httpRequest('get',_url)      self.reqIndex = 0    t = threading.Timer(2.0,self.getMsgFun)    t.start()    #發送消息  #qq 目標QQ  #msg 發送內容  def sendMsgFun(self,qq,msg):    msg = unicode(msg,'utf8').encode('utf8')    postData = {'sid':self.sid,'on':'1','saveURL':'0','saveURL':'0','u':qq,'msg':str(msg),}    s1Back = self.httpRequest('post','http://q16.3g.qq.com/g/s?sid='+ self.sid +'&aid=sendmsg&tfor=qq',postData)    print '發送消息給'.encode('gbk'),qq,'成功'.encode('gbk')    #收到消息的接口,重載或重寫該方法  def getMsg(self,data):    print data['time'],"收到".encode('gbk'),data['nick'].encode('gbk'),"(",data['qq'],")的新消息".encode('gbk')," : ",data['msg'].encode('gbk')    self.sendMsgFun(data['qq'],data['nick']+' ,測試消息。。')#+ data['msg'])QQ = PYQQ()QQ.login()            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
高清欧美性猛交xxxx黑人猛交| 欧美老女人bb| 成人av在线天堂| 久久精品国产v日韩v亚洲| 91tv亚洲精品香蕉国产一区7ujn| 欧美日韩在线免费观看| 992tv在线成人免费观看| 这里只有视频精品| 久久成人精品一区二区三区| 日韩精品视频免费| 久青草国产97香蕉在线视频| 91在线视频精品| 亚洲欧美激情视频| 欧美老少做受xxxx高潮| 日韩欧美在线字幕| 国产精品久久久久久久久免费看| 欧美日韩国产999| 国产精品网红直播| 日韩av成人在线| 欧美日韩国产第一页| 免费成人高清视频| 国模极品一区二区三区| 亚洲精品自产拍| 欧美日韩国产999| 欧美激情亚洲综合一区| 在线观看欧美视频| 欧美日韩在线视频一区二区| 亚洲精选在线观看| 亚洲人成网7777777国产| 亚洲国产小视频在线观看| 久久精品国产69国产精品亚洲| 视频在线一区二区| 97激碰免费视频| 欧美成人免费小视频| 国产精品精品久久久久久| 国产美女精品免费电影| 伊人久久男人天堂| 久久人人爽亚洲精品天堂| 日韩欧美一区二区三区| 福利视频第一区| 91久久在线视频| 亚洲欧洲国产精品| 国产精品视频自在线| 国产精品专区第二| 亚洲伊人一本大道中文字幕| 国产精彩精品视频| 亚洲精品第一国产综合精品| 一区二区欧美日韩视频| 久久久久久网址| 国产成人91久久精品| 久久国产精品电影| 欧美电影免费播放| 久久香蕉频线观| 日韩欧美国产网站| 欧美激情精品久久久久久免费印度| 国产精品a久久久久久| 日韩在线www| 美女扒开尿口让男人操亚洲视频网站| 国产91色在线|免| 久久精品国产欧美激情| 精品国产一区二区三区久久久狼| 国产午夜精品全部视频在线播放| 欧美精品少妇videofree| 国产亚洲视频在线观看| 欧美专区国产专区| 亚洲999一在线观看www| 91亚洲精华国产精华| 欧美大片免费观看| 欧美大片欧美激情性色a∨久久| 国产精品黄色av| 亚洲人成在线电影| 欧美日韩国产精品一区| 91啪国产在线| 国产一区二区三区在线播放免费观看| 亚洲欧美中文字幕在线一区| 国产精品扒开腿做爽爽爽的视频| 中文字幕日韩av| 91精品久久久久久久久不口人| 97视频在线播放| 日韩精品在线视频观看| 欧美最顶级的aⅴ艳星| 国产午夜精品全部视频在线播放| 欧美在线欧美在线| 成人观看高清在线观看免费| 欧美日韩国产在线播放| 国产欧美久久一区二区| 人人做人人澡人人爽欧美| 亚洲精品欧美极品| 国产999精品久久久| 91精品久久久久久久久中文字幕| 久久99精品视频一区97| 日韩成人久久久| 色综合久久久久久中文网| 九九热这里只有在线精品视| 亚洲天堂av在线播放| 欧美日韩成人网| 97久久伊人激情网| 国产精品国产自产拍高清av水多| 欧美日韩在线视频一区| 欧美一区二区三区……| 高清一区二区三区四区五区| 91精品成人久久| 日韩成人在线电影网| 热久久美女精品天天吊色| 亚洲国产天堂久久综合网| www.日本久久久久com.| 国产精品丝袜视频| 成人妇女免费播放久久久| 国产免费亚洲高清| 国产成人一区二区| 97成人精品区在线播放| 欧美日韩国产一区二区| 欧美午夜激情小视频| 成人黄色免费片| 亚洲国产精久久久久久久| 8090理伦午夜在线电影| 欧美日韩爱爱视频| 日韩亚洲国产中文字幕| 欧美日韩成人在线播放| 国内精品小视频| 国产成人短视频| 亚洲精品久久久一区二区三区| 国产精品久久久久av| 成人综合网网址| 国产亚洲欧美aaaa| 91国产一区在线| 热99精品里视频精品| 欧美日韩一区二区免费视频| 57pao精品| 亚洲人成网站色ww在线| 亚洲激情成人网| 欧美孕妇孕交黑巨大网站| 久久伊人精品天天| 欧美一级片免费在线| 欧美国产精品va在线观看| 久久久亚洲国产天美传媒修理工| 久久91亚洲精品中文字幕奶水| 国模吧一区二区三区| 91精品国产综合久久香蕉的用户体验| 亚洲欧美变态国产另类| 欧美性xxxx极品hd满灌| 国产香蕉97碰碰久久人人| 欧美精品videossex性护士| 成人a级免费视频| 日韩精品在线视频| 欧美最近摘花xxxx摘花| 久久久久久久久久久免费| 国产午夜精品久久久| 亚洲欧美在线播放| 中文字幕欧美日韩精品| 欧美www视频在线观看| 国产91在线播放| 欧美成人免费在线观看| 中文字幕成人精品久久不卡| 九九热这里只有在线精品视| 国内精品美女av在线播放| 日韩成人xxxx| 久久久久久久一区二区三区| 亚洲国产精品系列| 亚洲黄页视频免费观看| 欧洲中文字幕国产精品| 国产69精品99久久久久久宅男| 精品动漫一区二区三区| 成人av资源在线播放|