最近要做幾百個樣式統一的網頁的長截圖,試了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控制檯很容易獲取。
操作步驟:
- 如下圖所示,在python控制檯輸入
import pyautogui
- 輸入
pyautogui.position
- 把滑鼠放在想知道螢幕座標的地方
- 回控制檯按回車,即會輸出座標