pyautogui+PixPin 用来长截图简直太easy了!
最近要做几百个样式统一的网页的长截图,试了python+selenium,总是搞不定扫码登录,时间比较赶,就想看看直接使用截图软件手动做,截了几十个实在受不了了~~~~o(>_<)o ~~。于是又全网搜python直接操作windows的解决方案,终于发现了pyautgui这个能满足需求的神器。
先上官网
pyautogui github page
pyautogui官方文档[英文版]
PixPin下载网址
然后上代码
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
- 把鼠标放在想知道屏幕坐标的地方
- 回控制台按回车,即会输出坐标