1.购买服务器阿里云:服务器购买地址https://t.aliyun.com/U/Bg6shY若失效,可用地址
阿里云:
服务器购买地址
https://t.aliyun.com/U/Bg6shY若失效,可用地址
https://www.aliyun.com/daily-act/ecs/activity_selection?source=5176.29345612&userCode=49hts92d腾讯云:
https://curl.qcloud.com/wJpWmSfU若失效,可用地址
https://cloud.tencent.com/act/cps/redirect?redirect=2446&cps_key=ad201ee2ef3b771157f72ee5464b1fea&from=console华为云
https://activity.huaweicloud.com/cps.html?fromacct=64b5cf7cc11b4840bb4ed2ea0b2f4468&utm_source=V1g3MDY4NTY=&utm_medium=cps&utm_campaign=2019052.部署教程
3.代码如下
import pyautoguifrom apscheduler.schedulers.blocking import BlockingSchedulerfrom datetime import datetimeimport logging# 配置日志(可选,方便排查执行失败问题)logging.basicConfig(filename="qiandao_log.txt", # 日志文件保存路径level=logging.INFO,format="%(asctime)s - %(levelname)s - %(message)s",encoding="utf-8")def qiandao():"""原有签到逻辑(保持不变)"""try:pyautogui.FAILSAFE = Truepyautogui.PAUSE = 0.5screen_width, screen_height = pyautogui.size()print(f"屏幕分辨率:{screen_width} x {screen_height}")logging.info(f"开始签到,屏幕分辨率:{screen_width} x {screen_height}")# 移动鼠标到浏览器图标并点击pyautogui.click((508, 1055))pyautogui.sleep(3)# 点击书签pyautogui.click(1385, 116)pyautogui.sleep(0.5)# 点击游戏子标签pyautogui.click(1446, 168)pyautogui.sleep(2)pyautogui.click(1131, 340)# 二次点击,防止第一次打不开网页pyautogui.click(1385, 116)pyautogui.sleep(0.5)pyautogui.click(1446, 168)pyautogui.sleep(2)pyautogui.click(1131, 340)print('等待游戏网站页面加载 6秒倒计时开始')pyautogui.sleep(6)print('网页加载6秒结束,开始点击签到标签')pyautogui.click(1870, 713)print('等待游戏网站签到标签加载 8秒倒计时开始')pyautogui.sleep(8)print('签到卡片8秒等待结束,开始点击签到')pyautogui.click(1740, 302)pyautogui.sleep(2)screenshot_path = f"qiandao_screenshot_{datetime.now().strftime('%Y%m%d')}.png"pyautogui.screenshot(screenshot_path)print(f"签到完成!截图已保存为:{screenshot_path}")logging.info(f"签到成功,截图路径:{screenshot_path}")except Exception as e:# 捕获异常并记录到日志(方便排查问题)error_msg = f"签到失败:{str(e)}"print(error_msg)logging.error(error_msg)if __name__ == '__main__':# 创建定时调度器scheduler = BlockingScheduler()# 添加任务:每天早上8:30执行签到scheduler.add_job(func=qiandao,trigger="cron", # Cron触发器(支持固定时间)hour=8, # 小时:8点minute=30, # 分钟:30分id="daily_qiandao",replace_existing=True,misfire_grace_time=300 # 允许延迟5分钟执行(防止电脑略卡导致错过时间))print(f"定时签到脚本已启动!每天8:30自动执行\n日志文件:qiandao_log.txt")logging.info("定时签到脚本启动,每天8:30执行")try:scheduler.start() # 启动调度器(阻塞运行,不要关闭终端)except KeyboardInterrupt:# 按 Ctrl+C 停止脚本scheduler.shutdown()print("脚本已手动停止")logging.info("脚本手动停止")
这是一个 桌面自动化 + 定时任务的每日自动签到脚本:
利用
pyautogui模拟鼠标点击、等待页面加载自动打开浏览器 → 打开收藏的游戏网站 → 点签到按钮
签到后自动截一张图保存当天截图
用
apscheduler把这一整套操作设置为 每天早上 8:30 自动执行过程中所有成功、失败信息都会记录到
qiandao_log.txt方便排查问题
也就是说,只要电脑开着、分辨率和窗口位置不变,它就能每天帮你自动点一次"游戏签到"。
主要方法
1. logging.basicConfig(...)
配置日志系统:
日志文件名:
qiandao_log.txt记录时间、级别、消息内容
方便你以后看:脚本有没有跑、几点跑的、有没有报错。
2. qiandao() 函数
核心业务函数——"真正执行一次签到"的全部流程都在这里。
主要做的事:
初始化 pyautogui 行为
开启
FAILSAFE(鼠标移到左上角可紧急停止)设置每次操作间隔
PAUSE=0.5读取屏幕分辨率,用于日志记录
模拟鼠标完成登录/进入页面
点击指定坐标的 浏览器图标
点击浏览器里的 书签栏 / 游戏标签
做了两轮重复点击,防止网页第一次没打开
等待页面加载 + 点击签到
等待页面加载(
sleep(6))点击"签到标签"区域
再等一段时间(
sleep(8))等待签到内容加载点击"签到按钮"完成签到
签到结果截图 + 日志
以当天日期保存截图:
qiandao_screenshot_YYYYMMDD.png在控制台和日志里记录"签到成功 + 截图路径"
异常捕获
任何步骤出错(坐标不对、窗口没打开等)都会被
except捕获在终端 & 日志文件里记录"签到失败:错误原因"
3. if __name__ == '__main__': 主程序部分
负责"定时器调度"和"脚本生命周期管理"。
创建调度器:
scheduler = BlockingScheduler()添加定时任务:
每天 8:30 调用一次
qiandao()使用
cron触发器:id="daily_qiandao":任务标识replace_existing=True:如果之前有同名任务就覆盖misfire_grace_time=300:即使晚了 5 分钟内触发也算有效(防止电脑卡顿或刚从睡眠恢复)启动调度器:
scheduler.start()之后,程序会一直阻塞运行,等着时间到就执行签到用
try/except KeyboardInterrupt处理 Ctrl+C 中断,打印"脚本已手动停止",并写日志
注意:
本文部分变量已做脱敏处理,仅用于测试和学习研究,禁止用于商业用途,不能保证其合法性,准确性,完整性和有效性,请根据情况自行判断。技术层面需要提供帮助,可以通过打赏的方式进行探讨。
没有评论:
发表评论