pyautogui+PixPin 用來長截圖簡直太easy了!

水天需發表於2024-09-22

最近要做幾百個樣式統一的網頁的長截圖,試了python+selenium,總是搞不定掃碼登入,時間比較趕,就想看看直接使用截圖軟體手動做,截了幾十個實在受不了了~~~~o(>_<)o ~~。於是又全網搜python直接操作windows的解決方案,終於發現了pyautgui這個能滿足需求的神器。

先上官網

pyautogui github網址

pyautogui官方文件[英文版]

然後上程式碼

import pyautogui,time
import pyperclip

def single_long_screenshot(png,url):
    pyautogui.click(1715, 20, duration=0.5)  # 瀏覽器新增網頁
    pyperclip.copy(url)
    pyautogui.click(194, 60, duration=0.5)  # 位址列填入url
    pyautogui.hotkey('ctrl', 'v')
    pyautogui.press('enter')
    pyautogui.moveTo(428, 173, duration=0.5)  # 截圖起始點
    pyautogui.hotkey(['ctrl', '1'])  # 快捷鍵 ctrl+1 開啟PixPin
    pyautogui.moveTo(428, 173, duration=0.5)  # 截圖起始點
    pyautogui.dragTo(1462, 1029) # 截圖結束點
    pyautogui.hotkey(['l'])  # PixPin長截圖功能快捷鍵
    pyautogui.moveTo(600, 400, duration=0.5)   # 滑鼠移到螢幕中心
    n = 80
    while n > 0: # 直接滾輪無腦滾動80次
        pyautogui.scroll(-100)
        n -= 1
    pyautogui.click(1378, 148, duration=0.5)  # 點選截圖工具的儲存按鈕,不同網頁座標可能不同
    time.sleep(1) # 需要等待一小會,否則會出現沒貼上上去的情況
    pyperclip.copy(png)  # 複製傳進來的檔名
    pyautogui.hotkey('ctrl', 'v')  # 把檔名貼上到儲存檔案的對話方塊
    time.sleep(0.5)

    pyautogui.click(1608, 748, duration=0.5)  # 點選對話方塊的儲存按鈕
    pyautogui.click(1678, 21, duration=0.5)  # 點選關閉網頁

程式碼很簡陋,最重要的要知道操作的按鈕的座標,這個在python控制檯很容易獲取。
操作步驟:

  1. 如下圖所示,在python控制檯輸入 import pyautogui
  2. 輸入 pyautogui.position
  3. 把滑鼠放在想知道螢幕座標的地方
  4. 回控制檯按回車,即會輸出座標
    image

相關文章