pyautogui+PixPin 用来长截图简直太easy了!

最近要做几百个样式统一的网页的长截图,试了python+selenium,总是搞不定扫码登录,时间比较赶,就想看看直接使用截图软件手动做,截了几十个实在受不了了~~~~o(>_<)o ~~。于是又全网搜python直接操作windows的解决方案,终于发现了pyautgui这个能满足需求的神器。

先上官网

pyautogui github page

pyautogui官方文档[英文版]

PixPin下载网址

主要用法

  • pyautogui.click(1715, 20, duration=0.5) 鼠标点击
  • pyautogui.hotkey('ctrl', 'v') 调用快捷键
  • pyautogui.moveTo(428, 173, duration=0.5) 移动鼠标到某个位置
  • pyautogui.dragTo(1462, 1029) 拖拽鼠标
  • pyautogui.scroll(-100) 滚动鼠标滚轮
    还有个pyperclip的包,可以把文本粘贴到剪切板,如: pyperclip.copy(url)把url复制到剪切板,再用pyautogui调用快捷键粘贴 pyautogui.hotkey('ctrl', 'v'),非常方便。

然后上代码

import pyautogui,time
import pyperclip

def single_long_screenshot(png,url):
    pyautogui.click(1715, 20, duration=0.5)  
    pyperclip.copy(url)  # 把网页url复制到剪切板
    pyautogui.click(194, 60, duration=0.5)   # 鼠标移动到浏览器地址栏
    pyautogui.hotkey('ctrl', 'v')  # 用快捷键把网页url粘贴到浏览器地址栏
    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
posted @ 2024-09-22 10:25  水天需  阅读(27)  评论(0编辑  收藏  举报