2025年12月10日星期三

无GUI自动签到任务脚本

1.购买服务器阿里云:服务器购买地址https://t.aliyun.com/U/Bg6shY若失效,可用地址

1.购买服务器

阿里云:

服务器购买地址

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=201905

2.部署教程

2024年最新青龙面板跑脚本教程(一)持续更新中

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 = True        pyautogui.PAUSE = 0.5        screen_width, screen_height = pyautogui.size()        print(f"屏幕分辨率:{screen_width} x {screen_height}")        logging.info(f"开始签到,屏幕分辨率:{screen_width} x {screen_height}")
        # 移动鼠标到浏览器图标并点击        pyautogui.click((5081055))        pyautogui.sleep(3)
        # 点击书签        pyautogui.click(1385116)        pyautogui.sleep(0.5)        # 点击游戏子标签        pyautogui.click(1446168)        pyautogui.sleep(2)        pyautogui.click(1131340)
        # 二次点击,防止第一次打不开网页        pyautogui.click(1385116)        pyautogui.sleep(0.5)        pyautogui.click(1446168)        pyautogui.sleep(2)        pyautogui.click(1131340)
        print('等待游戏网站页面加载 6秒倒计时开始')        pyautogui.sleep(6)        print('网页加载6秒结束,开始点击签到标签')        pyautogui.click(1870713)        print('等待游戏网站签到标签加载 8秒倒计时开始')        pyautogui.sleep(8)        print('签到卡片8秒等待结束,开始点击签到')        pyautogui.click(1740302)
        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() 函数

核心业务函数——"真正执行一次签到"的全部流程都在这里。

主要做的事:

  1. 初始化 pyautogui 行为

    • 开启 FAILSAFE(鼠标移到左上角可紧急停止)

    • 设置每次操作间隔 PAUSE=0.5

    • 读取屏幕分辨率,用于日志记录

  2. 模拟鼠标完成登录/进入页面

    • 点击指定坐标的 浏览器图标

    • 点击浏览器里的 书签栏 / 游戏标签

    • 做了两轮重复点击,防止网页第一次没打开

  3. 等待页面加载 + 点击签到

    • 等待页面加载(sleep(6)

    • 点击"签到标签"区域

    • 再等一段时间(sleep(8))等待签到内容加载

    • 点击"签到按钮"完成签到

  4. 签到结果截图 + 日志

    • 以当天日期保存截图:qiandao_screenshot_YYYYMMDD.png

    • 在控制台和日志里记录"签到成功 + 截图路径"

  5. 异常捕获

    • 任何步骤出错(坐标不对、窗口没打开等)都会被 except 捕获

    • 在终端 & 日志文件里记录"签到失败:错误原因"

3. if __name__ == '__main__': 主程序部分

负责"定时器调度"和"脚本生命周期管理"。

  1. 创建调度器:

    scheduler = BlockingScheduler()
  2. 添加定时任务:

    • 每天 8:30 调用一次 qiandao()

    • 使用 cron 触发器:

    • id="daily_qiandao":任务标识

    • replace_existing=True:如果之前有同名任务就覆盖

    • misfire_grace_time=300:即使晚了 5 分钟内触发也算有效(防止电脑卡顿或刚从睡眠恢复)

  3. 启动调度器:

    • scheduler.start() 之后,程序会一直阻塞运行,等着时间到就执行签到

    • 用 try/except KeyboardInterrupt 处理 Ctrl+C 中断,打印"脚本已手动停止",并写日志


注意

本文部分变量已做脱敏处理,仅用于测试和学习研究,禁止用于商业用途,不能保证其合法性,准确性,完整性和有效性,请根据情况自行判断。技术层面需要提供帮助,可以通过打赏的方式进行探讨。


历史脚本txt文件获取>>
服务器搭建,人工服务咨询>>

没有评论:

发表评论

为什么没人愿意再雇用你

我今年57岁,累坏了。厌倦了投递简历却杳无音信。我眼睁睁地看着那些简历更好的年轻人做着同样的事情。 我今年57岁,累坏了。厌倦了投递简历却杳无音信。我眼睁睁地看着那些简历更好的年轻人做着同样的事情。我们都被同一台机器碾压,只是碾压的角度不同而已。 市场已经彻底崩坏,变得极其残...