python之自动发送微信消息

这篇文章主要是总结最近写自动发送微信消息的python代码时所接触的两个库——pyautogui和pyperclip的用法。

在网上找了很多能实现发送微信消息的方法,其中有使用itchat和wxpy库来实现的,尝试过后发现这两个库都需要通过登录网页微信才能发送,但现在微信几乎都不能登录网页版;后来发现了pyautogui库,这是一个能操控鼠标和键盘的库,所以我就使用了pyautogui库在微信客户端实现消息发送。由于pyautogui库只能键入英文,所以需要与pyperclip搭配使用,可解决中文输入问题,pyperclip充当了剪贴板功能。

一.pyautogui库之前置参数

pyautogui.FAILSAFE=False   
#是否启用自动防故障功能,默认这项功能为True,当鼠标指针在屏幕最左上方时程序报错!pyautogui.PAUSE=1
#意味着所有的pyautogui指令都要停顿1秒;可以防止键盘鼠标操作太快

二.pyautogui库之鼠标控制

#获取屏幕大小
width,height=pyautogui.size()#获取鼠标的位置
pyautogui.position()#鼠标移动
pyautogui.moveTo(x,y,duration=1)   #绝对移动:鼠标移动到(x,y)位置,移动过程持续时间为1秒
pyautogui.moveRel(xoffset,yoffset) #相对移动:相对当前位置向下移动xoffset,向右移动yoffset#按住左键移动
pyautogui.dragTo(x,y)       #拖动鼠标到(x,y)位置
pyautogui.dragRel(xoffset,yoffset)   #相对当前位置拖动鼠标#鼠标点击
pyautogui.mouseUp()  #松开鼠标
pyautogui.mouseDown()  #按下鼠标pyautogui.click(x, y, clicks=1, interval=0.0, button='left/right/middle', duration=1)
#在(x,y)位置点击,clicks表示点击次数,interval表示单击间隔时间,button选择左键/右键/中键点击pyautogui.rightClick()    #鼠标当前位置右键单击
pyautogui.doubleClick()   #鼠标在当前位置双击
pyautogui.doubleClick(x,y,button='left')  #鼠标在(x,y)位置双击
pyautogui.middleClick()   #鼠标在当前位置中键点击
pyautogui.tripleClick()   #鼠标在当前位置左击3下pyautogui.click还有一个参数 tween指定缓动/渐变函数,用于改变光标移动过程中的速度和方向,
通常是匀速直线运动,即线性缓动/渐变函数。(pyautogui有30种缓动/渐变函数,可通过pyautogui.ease*?查看)#鼠标滚动
pyautogui.scroll(10,x=11,y=15)  #鼠标移动到(x,y)位置时向上滚动10格,当为负数时向下滚动
pyautogui.scroll(10) #在当前位置鼠标滚动10格

三.pyautogui库之键盘控制

#输入字符串
pyautogui.typewrite("Hello World!")#按下并松开某键
pyautogui.press("enter")#按下和松开
pyautogui.keyDown("Shift")
pyautogui.keyUp("Shift")#组合按键
pyautogui.hotkey('ctrl',"v")#复制粘贴解决中文输入问题
pyperclip.copy("你好")
pyautogui.hotkey("ctrl","v")
四.pyautogui库的图像操作#截全屏并设置保存图片的位置和名称
pyautogui.screenshot("要保存的路径")#截取区域图片,region设置截取区域的左上角xy坐标值、宽度和高度(x,y,width,height)
pyautogui.screenshot("要保存的路径",region=(0,0,300,400))#获取文件图片在当前屏幕上的坐标,返回一个元组(top,left,width,height)
a=pyautogui.locateOnScreen("图片文件路径")
x,y=pyautogui.center(a) #获取图片文件在当前屏幕上的中心坐标x,y=pyautogui.locateCenterOnScreen("图片文件路径")

五.微信发送消息的代码

import pyautogui
import pyperclip
import os
import time
pyautogui.PAUSE=0.5
#在当前屏幕找到图片位置并点击
def mapping_img(img):image_l=pyautogui.locateOnScreen(img,grayscale=True)  #获取在当前屏幕的图片的位置if img=='微信搜索框.png':center=pyautogui.center(image_l)pyautogui.click(center) pyautogui.click(center)  #这里是调试时发现搜索框点击一次点不上,又加了一行else:center=pyautogui.center(image_l)pyautogui.click(center)#在聊天搜索框输入昵称搜索聊天对象打开和他的对话框   
def chat_user(user):if user!='':pyperclip.copy(user)mapping_img('微信搜索框.png')pyautogui.hotkey('ctrl','v')#pyautogui.press('enter')time.sleep(1)pyautogui.moveRel(xOffset=0,yOffset=
80)pyautogui.click()time.sleep(2)#点击微信窗口的上传文件按钮输入要发送的文件地址并打开,加载到待发送消息框
def readfile(filename):pyperclip.copy(filename)mapping_img('微信上传文件.png')  #点击微信窗口的“上传文件”按钮time.sleep(1)pyautogui.hotkey('ctrl','v')pyautogui.press('enter')def main(): os.chdir('C:\\Users\\Administrator\\微信图片') #切换路径,微信搜索框和上传文件图片都在此路径for dirpath,dirnames,filenames in os.walk("C:\\Users\\Administrator\\Desktop\\总监区数据",topdown=False):for name in filenames:user_name=name.split("总监")[0]path1=os.path.join(dirpath,name)if user_name.find("+")!=-1:for i in range(user_name.count("+")):user1=user_name.split("+")[i]chat_user(user1)readfile(path1)pyautogui.press('enter')pyperclip.copy("这是程序测试发出的文件,不用理会")pyautogui.hotkey('ctrl','v')pyautogui.press('enter')else:chat_user(user_name)readfile(path1)pyautogui.press('enter')pyperclip.copy("这是程序测试发出的文件,不用理会")pyautogui.hotkey('ctrl','v')pyautogui.press('enter')
if __name__=='__main__':main()

最后

在学习python中有任何困难不懂的可以微信扫描下方CSDN官方认证二维码加入python交流学习
多多交流问题,互帮互助,这里有不错的学习教程和开发工具。

python兼职资源+python全套学习资料

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

二、Python必备开发工具

在这里插入图片描述

四、Python视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
在这里插入图片描述

五、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。在这里插入图片描述

六、Python练习题

检查学习结果。
在这里插入图片描述

七、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
在这里插入图片描述
在这里插入图片描述
最后,千万别辜负自己当时开始的一腔热血,一起变强大变优秀。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/50088.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【奇巧淫技】python 助你每天早上八点自动发送天气预报邮件到QQ邮箱

此博客仅为我业余记录文章所用,发布到此,仅供网友阅读参考,如有侵权,请通知我,我会删掉。 补充 有不少杠精小婊贝留言说本文章没有用,因为天气预报直接打开手机就可以收到了,为何要多此一举发送…

Python实现公众号每日自动发早/晚安消息(详细教程)

公众号每日自动发早/晚安消息(python实现) 文章目录 一、微信公众号测试号申请 二、文件的配置 1.config.py 2.getApi.py 三、其他文件(可直接使用) 1.sayGoodMoring.py/sayGoodNight.py( 运行文件) 2.getJ…

又是一篇教你摸鱼的文章,用Python实现自动发送周报给老板

前言 有没有哪个同志跟我一样,每周都要写工作周报 像我这种记性不好的,一个月四周忘记三次 索性就用Python写个小工具,让它每周帮我给老板发周报~ Github: Weekday 小工具 提出目标 源码.资料.素材.点击领取即可 想有一个工具能发邮件 目…

python微信公众号自动推送(十分简单的教程)

目录 一、注册微信公众号 1.注册链接 2.登录成功 3.关注该公众号 4.创建模板 二、代码实现 1.爬取天气信息 2.计算生日天数 3.获取access token 4.获取关注者的openid 5.向用户广播消息 6.最终代码 2023年五月五日更: 自五月四日起原来的微信公众号模版将不…

chatGPT说明SQLAlchemy中的关系加载技术,joinedload加载方式,并与selectinload的不同之处

之前一直对SQLAlchemy中的关系加载很模糊 一次百度在SQLAlchemy中如何加载关联数据,给出的答案是selectinload,发现蛮好用,就一直使用了,没再继续了解其他的关系API,一次偶然的技术需要到这些了,赶紧来复习…

好用的码字软件,年入百万的大神作家们都在用

如今,码字软件需求很大,市面上也出现了很多码字软件,但找到一款适合自己的码字软件却并不容易,那么你知道大些大神作家们喜欢用什么软件么?其实我也不知道,但是我发现了一个秘密,那就是由橙瓜打…

猿创征文|五款程序员必备神级工具,看看你用过几个?

程序员必备的神级工具 一、有道词典二、XMind三、Notepad四、Typora五、Everything 一、有道词典 邻居家有个小孩,一个资深学瘾少年,有他经过的地方,总会引起周边妇女赞扬(以及对其余所有孩子的无限嘲讽)。 有一次&am…

一篇万字博文带你入坑爬虫这条不归路 【万字图文】

👻最近,很多粉丝私信我问——爬虫到底是什么?学习爬虫到底该从何下手?👻 😬其实,我想说的也是曾经的我身为小白的时候某些大牛对我说过的——很多时候我们都有一颗想要学习新知识的心&#xff…

微软/Hotmail验证码识别97%识别率方案

如图所示,微软Hotmail的验证码与我们往常所见的验证码略有不同,他是 【双层粘结】 的验证码,这对于我们识别有什么影响呢? 我们先来看CTC算法的TimeStep在语音识别中的表示: 因为位数不固定,一般通过端到…

EasyCaptcha图形验证码工具

介绍 Java图形验证码工具&#xff0c;支持gif&#xff08;动图&#xff09;、中文、算术等类型&#xff0c;可用于Java Web、JavaSE等项目。 快速开始 导入依赖 <dependency><groupId>com.github.whvcse</groupId><artifactId>easy-captcha</art…

您的captcha验证码设置对了吗?

Web App 评估可能是当今最流行的渗透测试之一。它们非常受欢迎&#xff0c;以至于 Hacker One 和 Bug Crowd 等公共漏洞赏金网站为希望修复 XSS、SQL 注入、CSRF 等漏洞的公司提供了数百个程序。许多公司还拥有自己的赏金计划&#xff0c;用于向以下人员报告 Web 漏洞一个安全团…

微软验证码项目 Captcha Code Demo 从 .NET Core 1.1.2升级到2.1.0

How to make and use captcha code in ASP.NET Core 在ASP.NET Core 中如何实现 captcha 验证码 这个 Demo 是在微软 msdn 中找到的&#xff0c;早期 2017年6月30日发布。发现它的时候是 2019年10月30日。这时候 .NET Core 版本 3.0 已发布。Visual Studio 2019 也已经自动更新…

【文心一言】广告文案、演讲稿与请假条自动生成

前言 作为一名大学生而言&#xff0c;平时参加或者举办一些学校组织的活动的时候&#xff0c;总是避免不了需要准备一些演讲稿、广告宣传文案等内容&#xff0c;甚至于在疫情十分严重的这几年内&#xff0c;如何跟老师“委婉的”请假&#xff0c;也成为了我日常头疼的事情。但在…

如何设计好一条推送通知

你注意过么&#xff0c;每天从不同的 App 上收到的大量的推送通知与提醒&#xff0c;这些通知里有多少你真的有兴趣? 智能手表屏幕上无意义的通知 每天&#xff0c;用户对各种没用的通知应接不暇&#xff0c;这些通知让他们分散注意力&#xff0c;甚至成为了骚扰。骚扰的通知…

通知栏消息文案写作干货:个推手把手教你写

去搜一搜消息推送的入门秘籍、干货精华&#xff0c;始终绕不开“推送有价值的信息很关键”&#xff0c;其载体则是走心的文案&#xff0c;那么对于APP运营人员来说&#xff0c;什么样的推送文案称得上“优秀”&#xff1f;本文结合部分APP的通知栏消息案例&#xff0c;从中规中…

通告,消息,提醒,设计

通告Bulletin&#xff1a; 平台发&#xff0c;用户收。分为实时通告和非实时通告。通告有优先级&#xff1a;紧急&#xff0c;高&#xff0c;普通。 平台向单个用户发&#xff0c;平台向多个用户发&#xff0c;平台向某一个用户类型发&#xff0c;平台向全部用户发。 平台发布通…

Twitter注册如何做到ip防关联

因为Twitter还可以用来做广告&#xff0c;所以很多跨境电商都是通过Twitter来工作的。对于这些用户来说&#xff0c;一个Twitter账号肯定是不够的&#xff1b;多个账户需要同时操作。但是&#xff0c;如果你使用相同的浏览器或相同的ip地址&#xff0c;你很快就会决定询问关联的…

IP-GUARD控制台账户输入多次错误密码锁定后该如何解锁?

其他管理员账户给锁定了,暂时只能等其锁定时间到了才可以再次输入,默认是设置是锁定30min; 1、如果急需此账户查看,可以使用admin系统管理员账户登录控制台,在工具-账户中清除这个账户的密码,重新登录设置密码。

Oracle用户被锁查哪个具体IP地址造成的

Oracle用户被锁查哪个具体IP地址造成的 1、用dba角色的用户登陆&#xff0c;进行解锁&#xff0c;先设置具体时间格式&#xff0c;以便查看具体时间 SQL> alter session set nls_date_format‘yyyy-mm-dd hh24:mi:ss’; Session altered. 2、查看具体的被锁时间 SQL>…

在 Linux 下利用ipset大量屏蔽恶意 IP 地址

很多情况下&#xff0c;你可能需要在Linux下屏蔽IP地址。比如&#xff0c;作为一个终端用户&#xff0c;你可能想要免受间谍软件或者IP追踪的困扰。或者当你在运行P2P软件时。你可能想要过滤反P2P活动的网络链接。如果你是一名系统管理员&#xff0c;你可能想要禁止垃圾IP地址访…