Python学习记录
关于控制鼠标键盘使用的模块:pyautogui,能控制鼠标的点击,移动,拖动,滚动。
以及一个Python的定时任务调度框架的模块:apscheduler能进行延迟执行任务,在指定时间日期内运行设定好的工作。
在一个博主那看到的很有意思的代码,可以定时发送信息,可以做信息轰炸,便自己去函数库学习了一下,做了一个定时提醒的消息。博主是用来哄女盆友的,由于我没有女盆友,于是决定用来提醒好朋友看每周六佘颖欣的直播。
代码如下
import pyautogui
import pyperclip
from datetime import datetime
from apscheduler.schedulers.blocking import BlockingScheduler
def main():
pyautogui.doubleClick(x=52, y=513, button="left") # button属性为鼠标的三个按键,doubleClick 是点击两次
pyautogui.click(x=319, y=200, duration=2)
pyautogui.click(x=527, y=694, duration=2)
pyperclip.copy('看我蛇姐直播')
pyautogui.hotkey('ctrl', 'v')
pyautogui.press('enter') # 按下并松开(轻敲)回车键
scheduler = BlockingScheduler() # 实例化
scheduler.add_job(main, ‘date’, run_date=datetime(2022, 9, 19, 0, 30, 00)) # 添加任务
scheduler.start() #这一段为定时函数,通过改变时间,读取电脑本身的时钟来完成定时任务
达到设定的时间后,鼠标会根据坐标找到图标的位置双击进入微信,点击微信置顶,单击打开对话框然后粘贴输入的内容,enter发送。
def get_mouse_positon():
time.sleep(5) # 准备时间
print('开始获取鼠标位置')
try:
for i in range(10):
# Get and print the mouse coordinates.
x, y = pyautogui.position()
positionStr = '鼠标坐标点(X,Y)为:{},{}'.format(str(x).rjust(4), str(y).rjust(4))
pix = pyautogui.screenshot().getpixel((x, y)) # 获取鼠标所在屏幕点的RGB颜色
positionStr += ' RGB:(' + str(pix[0]).rjust(3) + ',' + str(pix[1]).rjust(3) + ',' + str(pix[2]).rjust(
3) + ')'
print(positionStr)
time.sleep(0.5) # 停顿时间
except:
print('获取鼠标位置失败')
if __name__ == "__main__":
get_mouse_positon()
这串代码是用来寻找APP图标位置和对话框位置的,他会打印出位置的坐标还能打印当前位置的RGB颜色,python海龟绘图体系里面介绍过坐标等位置的含义,打印坐标还比较容易理解。
附
鼠标的移动速度是可以控制的,可以慢慢移动,也可以直接到达坐标位置,移动的效果可以更加清晰的看到过程。
这里附上效果图,第一次做视频转gif,这个不是很清晰,但是这样我就不用打马赛克了。
刚学习自动化模块,自己照着做这个感觉很有意思,也学到了很多。代码在函数库有更详细的解释,我也只是一个初学者。当然自动化的应用专业的肯定还是selenium,但是pyautogui作为一个入门的学习还是非常有意思的。