从0到1,让定时脚本帮你完成每日任务

2,832 阅读2分钟

如何编写签到脚本?

​过两天要去搬砖了,一个优秀的程序员就是要多整几份副业。停更几天,🐦🐦,不过反正也没几个人看吧​。


今天晚上我表弟的同学的姑妈的的儿子让我帮忙写一个定时签到打卡的脚本,授人予鱼,不如授人予渔。我就把整个过程记录下来吧。

1


找到网络请求


网站与服务器通信无非就是问服务器要东西,或者发东西给服务器,总归就是浏览器要发送请求给服务器的,而脚本所做的就是模拟这个请求。


我们可以通过调试工具查看浏览器发送的请求,以及对应请求接收到的数据。通过查看请求内容,可以筛选出我们需要模拟的目标请求。


这里以知乎为例,可以看出,当我们点击查看下一页后,浏览器就向后端服务器发送了一个查询下一页内容的请求,并得到了回复。



我们在这里把它复制为curl,如果你想要在这一步直接制作node.js fetch,当然你也可以选择复制为 node.js fetch。


2

用postman生成代码


我想用node.js request 来制作脚本,那么我们可以将复制到的curl,利用postman生成node.js request的对应代码。


首先点击postman右上角import,选择paste raw text,把我们复制到的curl粘贴进去



这样就得到了一个postman里的get请求



再点击右上角的code,选择node.js request,当然你想用python也可以选择python对应的方法,postman支持导出node.js,python,php,ruby等多种方法。



这样,我们就得到了一段node.js的代码,我们将其复制到我们的代码文件里就可以啦。


3

让脚本在Linux/Win上定时执行


脚本就已经写好了,我们可以先试试能不能跑起来。以我的脚本main.js为例,如果用命令


$ node main.js


能跑起来,那就是正常的,同理如果你写的是python脚本,对应的命令就是


$ python main.py


接下来就是让脚本定时运行了,能不能成就看这一步了。


Linux上

Linux上操作比较简单,都在命令行操作就可以了。首先我们打开定时任务列表


$ crontab -e


在打开的定时任务列表中添加一行


0 1 * * * node 你脚本的绝对路径



其中0 1 * * *是用来设置运行时间的,表示的是每天1点0分运行,值得注意的是要确认以下你的机器的时区,如果你的机器是标准时区的话,别忘了减8个小时, 例如你希望每天午夜2点运行脚本,就应该设置为0 18 * * *。


以上就是Linux下的操作,不过没有Linux服务器可咋整?可以去薅阿里云的学生优惠羊毛​,一个月9.9元还是比较良心的。不过如果你使用的是ubuntu 18.04镜像,设置定时任务之前需要先安装postfix,不然会报错(因为定时脚本如果有输出的话,cronjob会发邮件给你,postfix是邮件服务),亲身经历。


在debian系Linux系统上,可以通过以下命令查看脚本运行日志:


$ grep CRON /var/log/syslog



Windows上

需要先写一个bat脚本,新建一个txt文本文件,在里面写入一行


node main.js


保存,修改文件后缀名为.bat就可以了

然后设置定时启动就可以了。这一步图太多了,影响观看体验,给大家百度了一篇教程。可以点击查看原文查看。

往期文章


干货|你打卡时的定位信息可以被伪造吗?


在Chrome浏览器上用油猴脚本提升你的上网体验