可以尝试用pyautogui库
import pyautogui
pyautogui.moveTo(x, y, duration=1)
其中moveTo方法将鼠标移动到屏幕上(x, y)坐标,duration参数是移动的时间,比如duration=1就是用一秒时间移动到x, y坐标
其实pyautogui也可以实现其它很多有意思的操作,具体的可以参考官方文档:Welcome to PyAutoGUI’s documentation!pyautogui.readthedocs.io
希望可以帮上忙!
更新!关于如何在定位屏幕上的内容:
比如我们要实现知乎模拟点赞的效果,首先需要将点赞按钮截图(只能截不带数字的那一半,因为数字会变),然后保存为bmp格式。
随后将截图放在与脚本同目录下,输入下面的代码
import pyautogui
coo = pyautogui.locateCenterOnScreen("agree.bmp")
pyautogui.click(coo[0], coo[1])
其中locateCenterOnScreen函数查找传入图片在屏幕上的坐标,并返回图片的中心坐标值。若屏幕上有多个匹配,这个函数只返回第一个找到的图片坐标,如果没有找到,返回None。所以为了稳妥,还应该加上if语句判断一下。随后利用坐标就可以实现点击了。
当然如果需要找到屏幕上所有的目标,可以使用locateAllOnScreen函数。
import pyautogui
coos = pyautogui.locateAllOnScreen("agree.bmp")
for i in coos:
print(i)
返回值:
(242, 398, 77, 34)
(242, 839, 77, 34)
返回值前两个是图片左上角的xy坐标,后两个值是图片x和y轴长度
这样直接全屏幕搜索效率往往会很低,但若我们知道目标对象所在屏幕的大致区域,可以先用截屏函数截取相应区域,再用区域搜索函数找到目标,代码如下:
import pyautogui
area = pyautogui.screenshot(region=(214, 382, 1033, 649))
coo = pyautogui.locate("agree.bmp", area)
print(coo)
结果:
(28, 16, 77, 34)
解释一下:screenshot函数支持屏幕截屏,并把截图赋值到area上。定义了region参数后,可以实现区域截图。region的前两个参数是截图区域左上角坐标,后两个参数是区域右下角坐标。
locate函数接受两个参数,第一个是我们需要找的目标图片,第二个是寻找目标的范围图片。若找到目标,会返回目标在范围图片上的相对坐标,结果中的(28, 16)就是点赞按钮在区域截图上的坐标。
所以为了获得目标的真实屏幕坐标,需要在x和y上分别加截图区域左上角的坐标xy值
x, y = coo[0] + 214, coo[1] + 382
print(x, y)
结果:
242 398