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

首頁 > 編程 > Python > 正文

Python3.2模擬實現webqq登錄

2020-01-04 17:45:52
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了Python模擬實現webqq登錄的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
 

這是我最初學習時自己做的一個python模擬登錄webqq的實例代碼,具體代碼如下

import hashlibfrom urllib import request,parsefrom http import cookiejarimport re,random,timeimport threading as thimport json.encoder as json_encodeimport json.decoder as json_decodeclass QQ:  """   Login QQ  """  __headers ={        'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.9 Safari/534.30',/        'Referer':'http://ui.ptlogin2.qq.com/cgi-bin/login?target=self&style=5&mibao_css=m_webqq&appid=1003903&enable_qlogin=0&no_verifyimg=1&s_url=http%3A%2F%2Fwebqq.qq.com%2Floginproxy.html&f_url=loginerroralert&strong_login=1&login_state=10&t=20110909003'/  }  __cookiepath = 'C://Users//dingyangfan//Desktop/php//tt.txt'  __qq = None  __pswd = None  __verifycode = None  __clientid = 21628014  __http = {}  __psessionid = ''  __ptwebqq = ''  __vfwebqq = ''  __skey = ''  __poll2 = None  __get_msg_tip = None  __rc = 0  __send_num = 31330000  def __init__(self):    self.httpproess()    self.__Login()    pass  def __preprocess(self,password,verifycode):    """      QQ密碼加密部份    """    return hashlib.md5( (self.__md5_3((password).encode('utf-8')) + (verifycode).upper()).encode('utf-8')).hexdigest().upper()    pass   def __md5_3(self,str):    """      QQ密碼md5_3部份    """    return hashlib.md5(hashlib.md5(hashlib.md5(str).digest()).digest()).hexdigest().upper()    pass  def httpproess(self):    """      初始化模擬進程    """    self.__http['cj'] = cookiejar.MozillaCookieJar(self.__cookiepath)    self.__http['opener'] = request.build_opener(request.HTTPCookieProcessor(self.__http['cj']))    return self.__http    pass  def __request(self,url,method='GET',data={},savecookie=False):    """      請求url    """    if (method).upper() == 'POST':      data = parse.urlencode(data).encode('utf-8')      self.__http['req'] = request.Request(url,data,self.__headers)    else:      self.__http['req'] = request.Request(url=url,headers=self.__headers)    fp = self.__http['opener'].open(self.__http['req'])    try:      str = fp.read().decode('utf-8')    except UnicodeDecodeError:      str = fp.read()    if savecookie == True:      self.__http['cj'].save(ignore_discard=True,ignore_expires=True)    fp.close()    return str    pass  def __getcookies(self,name):    fp = open(self.__cookiepath)    fp.seek(130)    for read in fp.readlines():      str = read.split(name)      if len(str) == 2:        fp.close()        return str[1].strip()    fp.close()    return None    pass  def __getverifycode(self):    """      @url:http://ptlogin2.qq.com/check?uin=644826377&appid=1003903&r=0.56373973749578    """    urlv = 'http://ptlogin2.qq.com/check?uin='+ ('%s' % self.__qq)+'&appid=1003903&r='+ ('%s' % random.Random().random())    str = self.__request(url = urlv, savecookie=True)    str = re.findall(r'/d|(?<=/')[a-zA-Z0-9/!]{4}',str)    return str    pass  def __request_login(self):    """      @url:http://ptlogin2.qq.com/login      @params:{u:644826377          p:73DA5C1145E0F82247F60B3A17B89E6A  verifycode:!S10  webqq_type:10          remember_uin:1 login2qq:1 aid:1003903 u1:http://webqq.qq.com/loginproxy.html?login2qq=1&webqq_type=10          h:1 ptredirect:0  ptlang:2052 from_ui:1  pttype:1 dumy:          fp:loginerroralert  action:1-24-62651 mibao_css:m_webqq}    """    urlv = 'http://ptlogin2.qq.com/login?u='+('%s' % self.__qq) +'&' + 'p=' + ('%s' % self.__pswd) + '&verifycode='+ ('%s' % self.__verifycode[1]) +'&remember_uin=1&aid=1003903' + "&u1=http%3A%2F%2Fweb2.qq.com%2Floginproxy.html%3Fstrong%3Dtrue" + '&h=1&ptredirect=0&ptlang=2052&from_ui=1&pttype=1&dumy=&fp=loginerroralert'    str = self.__request(url = urlv,savecookie=True)    if str.find('登錄成功') != -1:      #執行二次登錄      self.__ptwebqq = self.__getcookies('ptwebqq')      self.__skey = self.__getcookies('skey')      self.__request_post()    elif str.find('不正確') != -1:      print('你輸入的帳號或者密碼不正確,請重新輸入。')    else:      print('登錄失敗')    pass  def __request_post(self):    '''      http://d.web2.qq.com/channel/login2      r:{"status":"online","ptwebqq":"95b148b95af9be7677757b3a629e3904f52f153d0b714c527f81f8d9e385867a","passwd_sig":"",      "clientid":"21628014","psessionid":null}      clientid:21628014      psessionid:null    '''    self.__headers.update({'Referer':'http://d.web2.qq.com/proxy.html?v=20110331002&callback=2'})    a = {'status':'online','ptwebqq':self.__getcookies('ptwebqq'),'passwd_sig':'','clientid':self.__clientid,'psessionid':'null'}    array = {'r':json_encode.JSONEncoder().encode(a),'clientid':self.__clientid,'psessionid':'null'}    url = 'http://d.web2.qq.com/channel/login2'    str = self.__request(url,'POST',array)    str = json_decode.JSONDecoder().decode(str)    self.__psessionid = str['result']['psessionid']    self.__vfwebqq = str['result']['vfwebqq']    self.__get_friend_info2()    self.__get_user_friends2()    self.__get_group_name_list_mask2()    self.__poll2_()    self.__get_msg_tip_()    pass  def __poll2_(self):    """      不知道干嘛的,一分鐘連接一次,屬于長連接,接收消息      @url:http://d.web2.qq.com/channel/poll2      r:{"clientid":"9467930","psessionid":"8368046764001e636f6e6e7365727665725f77656271714031302e3132382e36362e31313500003058000000c0026e040009456f266d0000000a407169446b464737436b6d00000028f8d256743e5c191cb40a2217845fab12fda62acd2e6145ae196976d7a8b3bb11a64d3c9565868322","key":0,"ids":[]}      clientid:9467930      psessionid:8368046764001e636f6e6e7365727665725f77656271714031302e3132382e36362e31313500003058000000c0026e040009456f266d0000000a407169446b464737436b6d00000028f8d256743e5c191cb40a2217845fab12fda62acd2e6145ae196976d7a8b3bb11a64d3c9565868322    """    self.__headers.update({'Referer':'http://d.web2.qq.com/proxy.html?v=20110331002&callback=2'})    urlv = 'http://d.web2.qq.com/channel/poll2'    a = {'clientid':self.__clientid,'psessionid':self.__psessionid,'key':0,'ids':[]}    array = {'r':json_encode.JSONEncoder().encode(a),'clientid':self.__clientid,'psessionid':self.__psessionid}    self.__poll2 = self.__request(url = urlv,method='POST',data = array)    str = json_decode.JSONDecoder().decode(self.__poll2)    print(str)    if str['retcode'] == 0:      if str['result'][0]['poll_type'] == 'message':        self.__message(str['result'][0]['value']['from_uin'])      elif str['result'][0]['poll_type'] == 'group_message':        self.__group_message(str['result'][0]['value']['from_uin'])        pass    t1 = th.Timer(1,self.__poll2_)    t1.start()    pass  def __get_msg_tip_(self):    """      #也不知道是什么,反正一直請求      @url:http://webqq.qq.com/web2/get_msg_tip?uin=&tp=1&id=0&retype=1&rc=64&lv=2&t=1315746772886    """    self.__headers.update({'Referer':'http://webqq.qq.com/'})    self.__rc += 1    num = 100 + self.__rc    t = '%s' % '%d' % time.time() + '%s' % num    urlv = 'http://webqq.qq.com/web2/get_msg_tip?uin=&tp=1&id=0&retype=1&rc='+'%s'% self.__rc +'&lv=3&t=' + t    self.__get_msg_tip = self.__request(urlv)    print(self.__get_msg_tip)    t2 = th.Timer(60,self.__get_msg_tip_)    t2.start()    pass  def __get_friend_info2(self):    '''      @url:http://s.web2.qq.com/api/get_friend_info2?tuin=self.__qq&verifysession=&code=&vfwebqq=self.__vfwebqq    '''    self.__headers.update({'Referer':'http://s.web2.qq.com/proxy.html?v=20110412001&callback=1&id=2'})    url = 'http://s.web2.qq.com/api/get_friend_info2?tuin='+ self.__qq + '&verifysession=&code=&vfwebqq=' + self.__vfwebqq + '&t=%s' % '%d' % time.time() + '100'    str = self.__request(url)    print(str)    pass  def __get_user_friends2(self):    '''      @url:http://s.web2.qq.com/api/get_user_friends2    '''    self.__headers.update({'Referer':'http://s.web2.qq.com/proxy.html?v=20110412001&callback=1&id=2'})    url = 'http://s.web2.qq.com/api/get_user_friends2'    a = {'h':'hello','vfwebqq':self.__vfwebqq}    array = {'r':json_encode.JSONEncoder().encode(a)}    str = self.__request(url,'POST',array)    print(str)    pass  def __get_group_name_list_mask2(self):    '''      @url:http://s.web2.qq.com/api/get_group_name_list_mask2    '''    self.__headers.update({'Referer':'http://s.web2.qq.com/proxy.html?v=20110412001&callback=1&id=2'})    url = 'http://s.web2.qq.com/api/get_group_name_list_mask2'    a = {'vfwebqq':self.__vfwebqq}    array = {'r':json_encode.JSONEncoder().encode(a)}    str = self.__request(url,'POST',array)    print(str)    pass  def __send_message(self,uid,msg):    '''      @url:http://d.web2.qq.com/channel/send_buddy_msg2      r:{"to":3023379661,"face":180,"content":"[/"哈哈/",/"//n【提示:此用戶正在使用WebQQ:http://webqq.qq.com/】/",[/"font/",        {/"name/":/"宋體/",/"size/":/"10/",/"style/":[0,0,0],/"color/":/"000000/"}]]","msg_id":31330001,"clientid":"76133590",          "psessionid":"s"}        clientid:76133590        psessionid:s       Referer:http://d.web2.qq.com/proxy.html?v=20110331002&callback=2      {"retcode":0,"result":"ok"}    '''    self.__send_num +=1    msg = "[/""+ msg +"/",[/"font/",{/"name/":/"宋體/",/"size/":/"10/",/"style/":[0,0,0],/"color/":/"000000/"}]]"    self.__headers.update({'Referer':'http://d.web2.qq.com/proxy.html?v=20110331002&callback=2'});    url = 'http://d.web2.qq.com/channel/send_buddy_msg2'    a = {'to':uid,'face':180,'content':msg,'msg_id':self.__send_num,'clientid':self.__clientid,'psessionid':self.__psessionid}    array = {'r':json_encode.JSONEncoder().encode(a),'clientid':self.__clientid,'psessionid':self.__psessionid}    str = self.__request(url,'POST',array)    print(str)    pass  def __message(self,uid):    '''      {"retcode":0,"result":[{"poll_type":"message","value":{"msg_id":13013,"from_uin":3023379661,"to_uin":644826377,"msg_id2":503935,"msg_type":9,"reply_ip":176752345,"time":1316143960,"content":[["font",{"size":13,"color":"000000","style":[0,0,0],"name":"/u5B8B/u4F53"}],"/u4E0D/u662F/u5427/u3002"]}}]}     '''    self.__send_message(uid,'我是機器人%s' % time.time())    pass  def __send_group_message(self,gid,msg):    '''      @url:http://d.web2.qq.com/channel/send_qun_msg2      r:{"group_uin":1132101900,"content":"[/"哈哈哈,測試/",/"//n【提示:此用戶正在使用WebQQ:http://webqq.qq.com/】/",[/"font/",      {/"name/":/"宋體/",/"size/":/"10/",/"style/":[0,0,0],/"color/":/"000000/"}]]","msg_id":31330002,"clientid":"76133590",      "psessionid":"a"}      clientid:76133590      psessionid:a       Referer:http://d.web2.qq.com/proxy.html?v=20110331002&callback=2       {"retcode":0,"result":"ok"}    '''    self.__send_num +=1    msg = "[/"" +msg + "/",[/"font/",{/"name/":/"宋體/",/"size/":/"10/",/"style/":[0,0,0],/"color/":/"000000/"}]]"    self.__headers.update({'Referer':'http://d.web2.qq.com/proxy.html?v=20110331002&callback=2'});    url = 'http://d.web2.qq.com/channel/send_qun_msg2'    a = {'group_uin':gid,'content':msg,'msg_id':self.__send_num,'clientid':self.__clientid,'psessionid':self.__psessionid}    array = {'r':json_encode.JSONEncoder().encode(a),'clientid':self.__clientid,'psessionid':self.__psessionid}    str = self.__request(url,'POST',array)    print(str)    pass  def __group_message(self,gid):    '''      {"retcode":0,"result":[{"poll_type":"group_message","value":{"msg_id":8044,"from_uin":1132101900,"to_uin":644826377,"msg_id2":178306,"msg_type":43,"reply_ip":2886742214,"group_code":317106137,"send_uin":3023379661,"seq":10654,"time":1316143836,"info_seq":32946855,"content":[["font",{"size":13,"color":"000000","style":[0,0,0],"name":"/u5B8B/u4F53"}],"/u5DE5"]}}]}     '''    self.__send_group_message(gid,'我是機器人%s' % time.time())    pass  def __Login(self):    """      qq登錄    """    self.__qq = input('QQ號:')    self.__pswd = input('QQ密碼:')    self.__qq = self.__qq.strip()    self.__pswd = self.__pswd.strip()    self.__verifycode = self.__getverifycode()    self.__pswd = self.__preprocess(      self.__pswd,#密碼 /      '%s' % self.__verifycode[1] #驗證碼 /    )    self.__request_login()    pass s = QQ()

以上就是本文的全部內容,希望對大家學習python程序設計有所幫助。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品专区h在线观看| 北条麻妃久久精品| 91精品久久久久久久久青青| 成人免费黄色网| 日韩精品极品视频| 亚洲精品国产品国语在线| 中文字幕久热精品在线视频| 欧美成人h版在线观看| 日韩成人av一区| 中文字幕亚洲欧美一区二区三区| 国产精品久久久久久久7电影| 不卡伊人av在线播放| 亚洲aⅴ男人的天堂在线观看| 国产精品久久久久久久一区探花| 95av在线视频| 久久五月天色综合| 国产香蕉97碰碰久久人人| 欧美激情18p| 在线视频一区二区| 成人免费黄色网| 日韩av一区在线| 国产成人在线视频| 亚洲二区在线播放视频| 久久国产精品久久久久久久久久| 成人黄色短视频在线观看| 日韩免费中文字幕| 精品久久久久久| 狠狠躁夜夜躁人人爽超碰91| 日韩精品极品在线观看播放免费视频| 亚洲欧美国产精品久久久久久久| 亚洲国产天堂久久综合| 亚洲国产天堂网精品网站| 精品国产91乱高清在线观看| 欧美激情一二三| 亚洲综合自拍一区| 欧美成人中文字幕| 欧美精品做受xxx性少妇| 在线精品91av| 亚洲一区二区三区乱码aⅴ| 国产精品久久久久久久久借妻| 亚洲无亚洲人成网站77777| 欧美在线视频一区二区| 亚洲天堂一区二区三区| 精品亚洲国产成av人片传媒| 国产国语刺激对白av不卡| 久青草国产97香蕉在线视频| 国产精品偷伦免费视频观看的| 欧美激情18p| 欧美性高潮在线| 国产精品91免费在线| 国产在线拍揄自揄视频不卡99| 国产综合久久久久久| 日本免费在线精品| 国产不卡av在线免费观看| 亚洲乱码av中文一区二区| 久久久久久久一区二区三区| 亚洲视频一区二区三区| 亚洲午夜未删减在线观看| 色爱精品视频一区| 国产精品视频色| 国产精品人人做人人爽| 97av在线播放| 久热爱精品视频线路一| 亚洲自拍在线观看| 欧美性xxxxx极品| 国产视频精品va久久久久久| 中文字幕日韩av综合精品| 精品少妇一区二区30p| 国产香蕉97碰碰久久人人| 97香蕉久久超级碰碰高清版| 午夜精品久久久久久久99热| 欧美日韩视频在线| 国产精品久久久久久av福利| 精品调教chinesegay| 亚洲亚裔videos黑人hd| 92福利视频午夜1000合集在线观看| 精品成人久久av| 国产一区二区丝袜高跟鞋图片| 欧美精品aaa| 国产成+人+综合+亚洲欧洲| 日本成人精品在线| 久久成人精品视频| 欧美一区二区.| 日韩精品日韩在线观看| 神马久久桃色视频| 亚洲片av在线| 亚洲精品美女视频| 国产欧美一区二区三区视频| 人人做人人澡人人爽欧美| 亚洲性线免费观看视频成熟| 久久久91精品国产一区不卡| 性日韩欧美在线视频| 亚洲精品美女网站| 欧美午夜久久久| 久久久国产精品视频| 欧美日韩性视频在线| www.欧美视频| 欧美日韩裸体免费视频| 亚洲黄一区二区| 久久久免费电影| 日韩在线视频网| 日韩激情av在线播放| 欧美日韩国产丝袜美女| 成人黄色片在线| 国产精品久久久久av| 亚洲第一精品福利| 欧美精品免费播放| 欧美日韩成人免费| 黄色一区二区三区| 成人在线中文字幕| 久久久久国色av免费观看性色| 欧美精品久久久久久久免费观看| 日韩在线观看免费| 国产精品一久久香蕉国产线看观看| 欧美性xxxx在线播放| 国产一区二区三区视频| 国产精品女视频| 国产精品露脸av在线| 热久久视久久精品18亚洲精品| 波霸ol色综合久久| 青青在线视频一区二区三区| 久久琪琪电影院| 国产精品久久久久久久天堂| 久久天堂av综合合色| 亚洲乱码国产乱码精品精| 久久久精品免费| 久久精品中文字幕免费mv| 成人写真视频福利网| 黑人狂躁日本妞一区二区三区| 精品国产一区二区三区四区在线观看| 亚洲成人激情在线观看| 欧美日韩亚洲视频| 亚洲午夜小视频| 国产精品国产福利国产秒拍| 国产福利视频一区二区| 欧美激情一区二区三级高清视频| 91精品综合久久久久久五月天| 亚洲精品自拍第一页| 在线观看精品自拍私拍| 久久av在线看| 亚洲加勒比久久88色综合| 精品国内亚洲在观看18黄| 国产精品久久av| zzijzzij亚洲日本成熟少妇| 国产午夜精品一区理论片飘花| 国产a级全部精品| 亚洲欧美中文字幕| 国产日韩欧美视频在线| 国产精品美女免费视频| 97在线精品国自产拍中文| 精品亚洲一区二区三区在线播放| 97香蕉久久超级碰碰高清版| 国产成人免费av电影| 国产精品av电影| 日本高清+成人网在线观看| 国产婷婷成人久久av免费高清| 欧美成年人视频网站| 亚洲欧洲成视频免费观看| 久久成人免费视频| 国模精品视频一区二区三区| 亚洲美女福利视频网站| 国产成人鲁鲁免费视频a| 亚洲大胆美女视频| 欧美激情精品久久久久久变态|