文章开头,先来看一个demo的效果。
视频加载中...
执行程序,打开桌面微信客户端,然后打开文件传输助手,最后发送消息。
当然这个例子是给文件传输助手发,你也可以给女朋友发,设置个定时,可以安心地去睡觉,或者干别的,给领导发,每天定时发工作汇报,如果你是一个社群运营,每天要往不同的群里发东西,用这个小脚本就能轻松做到,话不多说,下面一起来看看吧!
这个案例只需要基础的语法知识即可,其余的功能都是用的第三方库。
这里用到了两个库,pyautogui,和pyperclip。
先来看pyautogui :
pyautogui自动化控制鼠标和键盘操作,安装:pip install pyautogui
这里没有用到鼠标,直接用的是键盘快捷键:
这个库可以执行的方法如下:可以输入,按下,快捷键等。
#模拟输入信息pyautogui.typewrite(message='Hello world!',interval=0.5)#点击ESCpyautogui.press('esc')# 按住shift键pyautogui.keyDown('shift')# 放开shift键pyautogui.keyUp('shift')# 模拟组合热键pyautogui.hotkey('ctrl', 'c')
快速打开微信客户端,可以用到的快捷键就是Ctrl+Alt+w。查看方法如图所示:
然后我们就可以直接导入,并定义一个打开微信的函数了。
import pyautoguidef openWechat(): pyautogui.hotkey("ctrl","alt","w")
接下来打开微信后,我们用人工的操作方式应该是找到搜索框进行搜索,然后输入要搜索的名字,确定后再消息。
接下来就是就需要用到另外一个库pyperclip,这个库只有一个读写剪贴板的功能。
>>> import pyperclip>>> dd=pyperclip.paste()>>> print(dd)python大法好!>>> pyperclip.copy("docs.python.org")>>> pyperclip.paste()'docs.python.org'
我们用到这个库的原因是我们在ide里边写好文本,需要代码把文本传到微信客户端上去。
这里还是用到快捷键,ctrl+f,搜索,然后粘贴文本,然后回车确定,即可找到需要找的人。
import pyperclip# TODO 定义一个查询联系人的函数,参数为namedef chatWho(name): # TODO 使用hotkey函数,操作按键"ctrl","f",打开搜索 pyautogui.hotkey("ctrl","f") # TODO 使用pyperclip模块中的copy函数,复制微信号name到剪贴板 pyperclip.copy(name) # TODO 使用hotkey函数,操作按键"ctrl", "v",粘贴微信号 pyautogui.hotkey("ctrl","v") time.sleep(1) # TODO 使用hotkey函数,操作按键"enter",确认搜索 pyautogui.hotkey("enter")chatWho("文件传输助手")
最后就是发送函数,直接复制需要传输的文本,然后粘贴到微信对话框,再点击回车即可发送。
最后可以导入time库,防止大批量执行的时候,程序执行过快,导致微信封号。
完整的代码就是这边啦!
import pyautoguiimport timedef openWechat(): pyautogui.hotkey("ctrl","alt","w") time.sleep(1)import pyperclip# TODO 定义一个查询联系人的函数,参数为namedef chatWho(name): # TODO 使用hotkey函数,操作按键"command","f",打开搜索 pyautogui.hotkey("ctrl","f") # TODO 使用pyperclip模块中的copy函数,复制微信号name到剪贴板 pyperclip.copy(name) # TODO 使用hotkey函数,操作按键"command", "v",粘贴微信号 pyautogui.hotkey("ctrl","v") time.sleep(1) # TODO 使用hotkey函数,操作按键"return",确认搜索 pyautogui.hotkey("enter") time.sleep(2)def sentMsg(msg): pyperclip.copy(msg) pyautogui.hotkey("ctrl","v") pyautogui.hotkey("enter")# 调用OpenWechat()函数打开桌面微信openWechat()# TODO 调用chatWho(name)函数查找联系人,微信号:"duqian"chatWho("文件传输助手")sentMsg("发布测试")
接下来就是给特定的好友发消息,这一步我没做,修改的代码就是把chatWho函数那需要发送的好友微信号做一个列表,然后做循环执行即可。发布的消息如果需要带上每个人的昵称,可以在sentMsg里修改循环字符串。
那你要问了,怎么才能获取这些好友的微信号呢,如果要是一个个搜,那不是也很麻烦,你可以用这个库来进行,不过现在因为网页版微信不能用了,所以就用起来比较困难了。
