本帖最后由 thh866 于 2025-2-14 00:38 编辑
昨天刷到这个大佬 @♥REX♥ 的这个帖子 【Python】泥潭懒人值得拥有:[快速/自动] 签到脚本 —— 喂、你还在手动抓 Cookies 吗? 正好来了水贴灵感,顺便蹭蹭泥潭春节活动的尾巴
是什么?
GitHub Actions可以自动化、自定义和执行软件开发工作流程。
举些例子,比如commit 代码后自动编译并打包、定时推送天气信息到邮箱、定时执行签到等。
之前一直在用的东放自动签到脚本,然后想着这个脚本应该也行,简单试了下,然后就整出了这么个东西。
怎么用?
1.签到脚本
准备好签到脚本,比如上面提到的帖子的脚本,我就不搬了,请前往该贴获取评论追随,或者是泥潭其他py脚本
2.github仓
随便建个仓,强烈建议直接设置为私有Private
2.修改签到脚本
修改签到脚本,前面需要加入import os
中间需要删除隐私信息的log打印,具体原因和方法可参考置顶楼层,下图给出修改重点
最后的main函数要这样改 - if __name__ == "__main__":
- username = os.getenv("USERNAME")
- password = os.getenv("PASSWORD")
- # questionid = os.getenv("QID")
- # answer = os.getenv("ANSWER")
- if not username or not password:
- print("❌ 错误:未提供用户名或密码")
- exit(1)
- gm = GamemaleNoCookie(username, password)
- gm.run()
复制代码
不要在这里写用户名密码! 不要在这里写用户名密码! 不要在这里写用户名密码!
你的仓如果设置成public,那所有人都能看到了
3.添加脚本至仓库
点Add file把脚本直接加进去
4.用户名和密码
这样创建你的用户名和密码 Settings -> Actions secrets and variables -> Actions -> New repository secrets
创建出下图中标黄的两条记录 USERNAME 和 PASSWORD,分别保存用户名和密码
这里我没有测试过对中文用户名的兼容性,所以后面运行失败可以修改2中的main函数
比如这样 - if __name__ == "__main__":
- username = "username" # 引号内改成你的
- password = os.getenv("PASSWORD")
- # questionid = os.getenv("QID")
- # answer = os.getenv("ANSWER")
- if not username or not password:
- print("❌ 错误:未提供用户名或密码")
- exit(1)
- gm = GamemaleNoCookie(username, password)
- gm.run()
复制代码
5.yml文件
描述 workflow 的文件,默认路径是 .github/workflows/
点这里开始添加yml文件 Actions -> New workflow
跳转后点这里 set up a workflow yourself
然后拷贝下面的内容: - name: 'gamemaleAutoLogin'
- on:
- push:
- branches: [ main ] # 当对分支main进行push操作的时候,这个工作流就被触发了
- schedule:
- - cron: '0 4,16 * * *' # 定时任务,UTC 16:00 ,即北京时间 00:00 运行
- jobs:
- build:
- runs-on: ubuntu-latest
- steps:
- - name: Checkout
- uses: actions/checkout@master
- - name: Set up Python # 安装python
- uses: actions/setup-python@v1
- with:
- python-version: 3.10.16
- - name: Install pkt # 安装requests, ddddocr
- run: pip install requests ddddocr
- - name: Login # 读取账号并登录
- env:
- USERNAME: ${{ secrets.USERNAME }}
- PASSWORD: ${{ secrets.PASSWORD }}
- run: python gamemale.py
复制代码
再点击右上角的 commit changes
6.自动运行及结果
完成上一步的提交之后,就会自动开始运行,可以进行查看
后续会根据脚本中的UTC时间进行自动运行,自行确认要在什么时候运行,如下表示UTC时间的 4:00 和 16:00 ,即北京时间 12:00 和 00:00 各运行一次 - schedule:
- - cron: '0 4,16 * * *' # 定时任务,UTC 4:00 16:00
复制代码
由于脚本自动运行需要时间(包括创建环境、安装包等),会有几十秒不等的延迟,所以不适合用来抢首签
补充:置顶楼层以及主楼回帖补充了使用及安全相关说明! 简化操作可直接clone/fork置顶楼的仓库,参考4点添加用户名和密码也能使用
最后祝大家元宵快乐!!!
广告:传送门脚本已更新至 永亘环 ,欢迎通过主楼最后的油猴更新使用!
|