时间:2021-01-15 11:13:04 | 栏目:Python代码 | 点击:次
1.思路
通过pyautogui可以实现鼠标点击、滚动鼠标、截屏等操作。由此功能实现打开页面,进行点赞。
aircv可以从大图像获得小图像的位置,利用pyautogui截屏得到的图片,可以在页面获取到每一个👍的位置,进行点击。
当前页面点击完之后,通过pyautogui滚动鼠标的功能继续向下翻。从而实现循环。
2. 参考
3. 安装包
这里利用了清华的镜像,不用镜像容易下载失败。
下载的opencv-contrib-python
和opencv_python
版本也要带上。如果已经下载了不对版本,可以使用pip uninstall 删除。
pip install aircv pip install -i https://pypi.tuna.tsinghua.edu.cn/simple opencv-contrib-python==3.4.2.16 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple opencv_python==3.4.2.16 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyautogui
4. 准备工作
需要把这个截下来图片放在代码的同目录下
很多人学Python过程中会遇到各种烦恼问题解决不了。为此小编建了个Python全栈免费答疑交流.裙 : 624440745
5. 代码
import cv2 import aircv as ac import pyautogui import time import os #获取赞所在的位置 def mousepos(img1,img2): imsrc = ac.imread(img1) # 原始图像 imsch = ac.imread(img2) # 带查找的部分 match_result=ac.find_all_template(imsrc, imsch,0.80) #提取出中心点的横纵坐标 points=[] for i in match_result: points.append((i['result'])) return points def begin(): #截屏 time.sleep(1) img1 = pyautogui.screenshot() if os.path.exists('1.png'): # 如果文件存在 # 删除文件,可使用以下两种方法。 os.remove('1.png') img1.save('1.png') #由于匹配相似度不同,为了减少错误,把纵坐标不在点赞的那一条的删除 pos=mousepos('1.png','test.png') for i in pos[:]: if i[0]!=pos[0][0]: pos.remove(i) print(pos) #点击 for i in pos: pyautogui.moveTo(i[0], i[1]) pyautogui.click(clicks=10, interval=0.2) time.sleep(1) #滚动鼠标 pyautogui.scroll(-300, x=100, y=100) #这一段仅仅是根据所在位置打开页面,这一段可以不要,自己打开点赞页面也行。 def openpage (): pyautogui.click(x=1596 ,y=1063,clicks=1, interval=2) pyautogui.click(x=1539 ,y=272,clicks=1, interval=2) pyautogui.click(x=896, y=581,clicks=1, interval=2) if __name__ == '__main__': openpage(); for i in range(20): #根据自己的需要设置次数 begin()
总结