1.思路
通过pyautogui可以实现鼠标点击、滚动鼠标、截屏等操作。由此功能实现打开页面,进行点赞。
aircv可以从大图像获得小图像的位置,利用pyautogui截屏得到的图片,可以在页面获取到每一个👍的位置,进行点击。
当前页面点击完之后,通过pyautogui滚动鼠标的功能继续向下翻。从而实现循环。
2. 参考
pyautogui自动化控制鼠标和键盘操作
aircv通过大图像获得小图像的位置
3、下载安装所用到的python包
安装 pip
python -m ensurepip
pip install aircv
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple opencv-contrib-python==3.4.8.29
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple opencv_python==3.4.8.29
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyautogui
卸载软件
pip uninstall opencv-contrib-python==3.4.8.29
pip uninstall opencv_python==3.4.8.29
4. 准备工作
需要把这个截下来图片放在代码的同目录下
很多人学Python过程中会遇到各种烦恼问题解决不了。为此小编建了个Python全栈免费答疑交流.裙 :833020301
5. python 代码
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()
运行效果 后期补充~~~~
5.打包 exe 别人电脑也可以运行
普通打包
win+R
cmd
d:
cd D:\work_space\python\wx
pyinstaller --onefile --windowed --icon=app.ico wx_dz.py
含资源文件 打包
win+R
cmd
d:
cd D:\work_space\python\wx
pyinstaller --hidden-import=tkinter --hidden-import=tkinter.messagebox --hidden-import=tkinter.scrolledtext --hidden-import=requests --hidden-import=cv2 --hidden-import=aircv --hidden-import=pyautogui -D -w -i "app.ico" run_main.py --add-data "main.cp38-win_amd64.pyd;." --add-data "test00.png;." --add-data "app.ico;." --add-data "test_c.png;." --add-data "opencv_ffmpeg348_64.dll;." --add-data "test01.png;." --add-data "test02.png;."
可能会出现的问题:
raise ImportError('ERROR: recursion is detected during loading of "cv2" binary extensions. Check OpenCV installation.')
ImportError: ERROR: recursion is detected during loading of "cv2" binary extensions. Check OpenCV installation.
python-OpenCV程序打包后无法正常运行
将python下的OpenCV的DLL复制以打包后的目录中,与.py位于同一目录即可。
D:\ProgramData\Anaconda3\Lib\site-packages\cv2\opencv_videoio_ffmpeg420_64.dll