如何为Pyautogui设置时间延迟以实现漫画阅读自动化操作?
PyAutoGUI 漫画阅读自动化时长控制实现方案
核心实现逻辑
- 单操作执行时长:通过PyAutoGUI内置方法的
duration参数设置,可控制鼠标移动、拖拽等单个动作的完成耗时 - 固定等待时长:通过
time.sleep()设置两个操作之间的间隔,比如点击下一页后等待页面加载的时间 - 指定时长持续操作:针对滚动这类需要持续执行的操作,通过时间戳差值判断循环执行时长,即可实现指定时间的持续滚动
- 滚动完成后直接调用你已经掌握的
pyautogui.click(x, y)方法即可触发下一页点击
可直接运行的参考代码
import pyautogui import time # 全局配置,仅需在代码开头设置1次 pyautogui.FAILSAFE = True # 自定义参数,可根据实际需求修改 scroll_total_time = 200 # 单次持续滚动总时长,单位:秒 scroll_step = int(input('请输入滚动步长:')) next_page_x = 1000 # 替换为你实际的下一页按钮X坐标 next_page_y = 500 # 替换为你实际的下一页按钮Y坐标 start_wait_time = 3 # 程序启动后等待时间,预留切换到漫画页面的时间 # 启动前等待 time.sleep(start_wait_time) while True: # 执行指定时长的持续滚动 scroll_start = time.time() while time.time() - scroll_start < scroll_total_time: pyautogui.scroll(scroll_step) # 若滚动速度过快,可取消下方注释,调整间隔时间 # time.sleep(0.1) # 滚动结束后点击下一页 pyautogui.click(next_page_x, next_page_y) # 等待下一页加载完成,可根据页面加载速度调整时长 time.sleep(1)
原有代码问题修正说明
- 原有代码中
while 0 < 10是死循环,若需要添加终止条件可自行补充判断逻辑 - 无需使用
pyautogui.time.sleep,直接导入time模块调用sleep()写法更规范 pyautogui.FAILSAFE是全局配置,不需要放在循环内重复赋值- 原有代码中
moveTo的duration参数仅控制鼠标移动到指定坐标的耗时,无法控制滚动总时长,因此单独设置该参数达不到持续滚动200秒的效果
内容的提问来源于stack exchange,提问作者cthulhu777
相关产品推荐
相关产品推荐

