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)


你可能感兴趣的:(Python)