python學習筆記——用python批量登陸QQ

通過這個小小的過程來學習python中鼠標鍵盤以及win32的使用

代碼1:自動化登陸單個QQ。登陸後最小化QQ界面。

import win32gui
import subprocess
import time
from pymouse import PyMouse
from pykeyboard import PyKeyboard

m = PyMouse() #創建鼠標實例
k = PyKeyboard() #創建鍵盤實例

def qq_load():
    #用subprocess模塊打開qq程序
    qq_exe = 'D:\Program Files (x86)\Tencent\QQ\Bin\QQ.exe'
    subprocess.Popen([qq_exe])
    #給qq留點啓動時間
    time.sleep(0.2)
    #獲取窗口的句柄,參數1:類名,參數2:標題
    handle = win32gui.FindWindow('TXGuiFoundation','QQ')
    print(handle)
    #獲取窗口左上角和右下角座標
    left,top,right,bottom = win32gui.GetWindowRect(handle)
    print(left,top,right,bottom)
    #將鼠標移動到賬號輸入框位置
    # m.move(885,580)
    time.sleep(1)
    #移動鼠標到賬號輸入框並按下鼠標
    m.click(885,580,1,1)
    xy = m.position()
    print(xy)
    #模擬鍵盤輸入字符串
    k.type_string('1731980000')
    #點擊tab鍵,鍵盤對應的kyecode碼0
    k.tap_key(9)
    #模擬鍵盤輸入字符串
    k.type_string('asdf@#aaaa')
    #點擊tab鍵
    k.tap_key(9)
    #點擊回車
    k.tap_key(13)
    #獲取打開的qq窗口的句柄
    time.sleep(2)
    w = win32gui.FindWindow('TXGuiFoundation','QQ')
    #最小化窗口
    win32gui.CloseWindow(w)


if __name__ =='__main__':
    qq_load()

練習2:批量登陸QQ

目前只能登陸成果約70%的號碼,中途會出錯,顯示一部分號碼已經登陸而沒有輸入正確的號碼去登陸

'''
步驟:
1 / 打開QQ軟件
2 / 移動鼠標到QQ號碼輸入處
3 / 在輸入框點擊鼠標,輸入賬號
4 / 模擬按下tab鍵,切換到密碼框,輸入密碼
5 / 模擬點回車登陸
6 / 每登陸10個就殺死騰訊QQ多客戶端管理服務
'''
import win32gui
import subprocess
import time
from pymouse import PyMouse
from pykeyboard import PyKeyboard
import os

m = PyMouse() #創建鼠標實例
k = PyKeyboard() #創建鍵盤實例

def qq_load(account,password):
    qq_exe = 'D:\Program Files (x86)\Tencent\QQ\Bin\QQ.exe'
    subprocess.Popen([qq_exe])#用subprocess模塊打開qq程序
    time.sleep(0.5)#給qq留點啓動時間
    handle = win32gui.FindWindow(None,'QQ')#獲取窗口的句柄,參數1:類名,參數2:標題
    left,top,right,bottom = win32gui.GetWindowRect(handle)
    print(left,top,right,bottom)
    time.sleep(0.5)
    new_x = int(left+(right-left)/2)-70 #賬號輸入框座標
    new_y = int(top+(bottom-top)/2)+40 #賬號輸入框座標
    m.click(new_x,new_y,1,2)#移動鼠標到賬號輸入框並按下鼠標
    k.type_string(account)#模擬鍵盤輸入字符串
    print('%s 正在登陸……'%account)
    time.sleep(0.5)
    k.tap_key(9)#點擊tab鍵,鍵盤對應的kyecode碼
    k.type_string(password)#模擬鍵盤輸入字符串
    time.sleep(1.5)
    window = win32gui.FindWindow(None,'QQ')#獲取打開的qq窗口的句柄
    # print(w)
    win32gui.CloseWindow(window)#最小化窗口

def qq_data(f):
    with open(f,'r') as f:
        # f = f.readline() #單條測試用代碼
        # account = f.split('----')[0]
        # password = f.split('----')[1]
        # print(account,password)
        # qq_load(account,password)
        i = 1
        for f in f.readlines():
            if i%10==0:
                os.system('taskkill /f /im TXPlatform.exe') #殺死騰訊QQ多客戶端管理服務
                account = f.split('----')[0]
                password = f.split('----')[1]
                qq_load(account,password)
                time.sleep(2.5)
                i +=1
                continue
            else:
                account = f.split('----')[0]
                password = f.split('----')[1]
                qq_load(account,password)
                time.sleep(2.5)
                i +=1
            print(i)


if __name__ =='__main__':
    f = 'E:\\賬號資料\\QQdata.txt'
    qq_data(f)


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章