nutaku自动签到程序实现
errol发表于2024-01-08 09:44:17 | 分类为 编程 | 标签为nutaku爬虫python

这两天花了点时间把n站金币活动自动签到脚本(初版)写出来了,其运行效果如下。

image

图1 macos下运行

image

图2 windows下运行

image

图3 unix可执行文件

image

图4 windows可执行文件

(稍微吐槽一下,由于打包工具不是跨平台的,所以得分别跑到对应的系统进行打包,有点麻烦。)

可以简单概括它的业务:

  1. 添加定时任务;

  2. 请求网站主页;获取必要的数据;

  3. 签到;如果签到失败,则进行重试;

  4. 退出或继续运行。

程序启动前,需按要求在config配置文件中填写自己的账号信息,并且可以根据自己的作息设置执行时间、执行模式,此外还可以设置邮箱通知、重试次数、重试间隔等参数,完整的配置文件如下。

# 账号相关(邮箱、密码)
# 本程序不会收集&存储任何与账号相关的数据
[account]
email=你的账号
password=你的密码

# 代理(梯子)
[network]
proxy=127.0.0.1:7890

# 其他设置
[settings]
# 日志(on=启用;off=关闭)
log=on
# 调试模式(on=启用;off=关闭)
debug=on
# 邮箱通知;以当前账号为准(on=启用;off=关闭)
email_notification=on
# 签到重试次数;当由于网络或其他因素导致签到失败时,程序会自动进行重试
retrying=5
# 重试间隔(单位,分钟)
retrying_interval=10
# 执行时间(以24小时制为准,00:00-23:59;在指定的时间(如'9,20:30',则为'9:30'和'20:30'两个时间点)执行任务,但不一定准确,比如由于电脑进入休眠/睡眠状态时,程序会停止运行,此时就会导致延迟执行)
# 如果在某个时间点已经完成签到,则其他时间点不会再次签到,多个时间点只是为了增加容错
execution_time=9,20:15
# 执行容错时间(单位,分钟)
misfire_grace_time=600
# 执行模式(1=默认,程序持续运行;2=执行完后退出程序)
# 模式1适用于电脑不关机的情况;模式2适用于电脑日常关机的情况,可配合'开机启动'使用
execution_mode=2

之后,程序会按照预定执行签到任务。

不过,由于需要用到梯子的缘故,也不能保证百分百能签到成功,只能说尽可能、最大限度地完成签到。

如程序运行时,梯子没有打开,或者是梯子来大姨妈等因素,没法与服务器建立连接。

这也是retrying、retrying_interval、execution_time配置项存在的原因,它们都是“完成签到”的补救措施。最好的情况就是程序运行期间,用户也正在使用梯子,这样能大大提升签到成功的概率。

同时,这也是一个潜在的新需求:“在签到期间,自动打开梯子”,以加大签到成功的概率,当然了,这也得先看看反响如何,如果还不错的话就加上。


感兴趣的读者可以点击这里获取源码。

总的来说,由于网站“不存在”反爬措施,连登陆验证码都没有,所以实现起来相对还是比较简单的,全部的接口只要带着对应的数据请求服务器,均能得到正确的响应结果,因此在完成了比较耗时的网站分析之后,程序的大体框架也很快搭建好了,剩下的就只是查漏补缺、优化完善。

以上。

返回