赞
踩
我们控制鼠标的操作,不能盲目的进行,所以我们需要监控屏幕上的内容,从而决定要不要进行对应的操作, pyautogui 提供了一个方法screenshot(),可以返回一个Pillow的image对象;
这里有三个常用函数:
im = pyautogui.screenshot()
:返回屏幕的截图,是一个Pillow的image对象
im.getpixel((500, 500))
:返回im对象上,(500,500)这一点像素的颜色,是一个RGB元组
pyautogui.pixelMatchesColor(500,500,(12,120,400))
:是一个对比函数,对比的是屏幕上(500,500)这一点像素的颜色,与所给的元素是否相同;
im = pyautogui.screenshot()
im.save('屏幕截图.png')
保存屏幕截图;
首先,我们需要先获得一个屏幕快照,例如我们想要点赞,我们就先把大拇指的图片保存下来;然后使用函数:locateOnScreen(‘zan.png’) ,如果可以找到图片,则返回图片的位置,如:Box(left=25, top=703, width=22, height=22);如果找不到图片,则返回None;
如果,屏幕上有多处图片可以匹配,则需要使用locateAllOnScreen(‘zan.png’) ,如果匹配到多个值,则返回一个list,参考如下:
import pyautogui
pyautogui.PAUSE = 1
# 图像识别(一个)
btm = pyautogui.locateOnScreen('zan.png')
print(btm) # Box(left=1280, top=344, width=22, height=22)
# 图像识别(多个)
btm = pyautogui.locateAllOnScreen('zan.png')
print(list(btm)) # [Box(left=1280, top=344, width=22, height=22), Box(left=25, top=594, width=22, height=22)]
pyautogui.center((left, top, width, height))
返回指定位置的中心点;这样,我们就可以再配合鼠标操作点击找到图片的中心;
我们需要将所有的文章点赞,本页上的点赞完成后,就滚动鼠标,把新加载的文章也全部点赞;
代码如下:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# author:Zhang Kai
import pyautogui
import time
def zan():
time.sleep(0.5) # 等待 0.5 秒
left, top, width, height = pyautogui.locateOnScreen('zan.png') # 寻找 点赞图片;
center = pyautogui.center((left, top, width, height)) # 寻找 图片的中心
pyautogui.click(center) # 点击
print('点赞成功!')
while True:
if pyautogui.locateOnScreen('zan.png'):
zan() # 调用点赞函数
else:
pyautogui.scroll(-500) # 本页没有图片后,滚动鼠标;
print('没有找到目标,屏幕下滚~')
运行后,会逐个进行点赞:
Pycharm中的输入如下:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。