1.思路
- 通過pyautogui可以實現鼠標點擊、滾動鼠標、截屏等操作。由此功能實現打開頁面,進行點贊。
- aircv可以從大圖像獲得小圖像的位置,利用pyautogui截屏得到的圖片,可以在頁面獲取到每一個👍的位置,進行點擊。
- 當前頁面點擊完之後,通過pyautogui滾動鼠標的功能繼續向下翻。從而實現循環。
2. 參考
pyautogui自動化控制鼠標和鍵盤操作
aircv通過大圖像獲得小圖像的位置
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. 準備工作
需要把這個截下來圖片放在代碼的同目錄下
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()