很多时候我们写代码是为了替代重复劳动,解放生产力。学习定时任务可以帮助我们更好地完成日常性工作,如果你有一台云服务器、不关机的电脑或者树莓派的话,来学习一下如何使用Python定时参与抽奖吧~
前几天看到刘志军老师的一篇文章,亲测是可用的,大家可以先复习一遍:
推给朋友以后,反馈说还是抓包那块不是太熟悉,那么今天一方面再强化一下抓包技能,另一方面研究一下定时任务。
抓包的软件有很多,fiddler,wireshark,anyproxy,Charles等等,当然使用属于哪个软件工具的挑选,基本的功能都是类似的。我主要用fiddler和anyproxy。关于AnyProxy安装配置的内容看上一篇推送就可以了。
接下来进入今天的主题。
首先启动anyproxy并配置好手机端代理
要记得加-i参数
打开localhost:8002的web管理端页面,此时应该已经可以看到数据请求了。
然后在手机上访问小程序,抽奖助手。
如果手机流量很杂影响筛选的话,可以在管理页面手动设置filter:
后续的步骤和抽奖的实现大家可以具体去看刘老师的实现~
关键点就是自己抓包从请求头拿到Authorization字段后修改相应的代码。
实现抽奖以后并不满足,因为依然要每天手动跑一次代码。手里既然有一台服务器,就考虑把抽奖代码扔到服务器定时运行吧。
云服务器大都还是Linux平台的,今天以Ubuntu来写,Windows之后看机会吧。
Linux上的定时任务服务是crond,这里需要注意一个小细节,启动、关停服务时,Ubuntu平台的服务名是cron,其他大部分平台都是crond,具体配置命令时使用的命令都是crondtab。
听着有点绕口,我们直接实践就好。
想要使用crond服务,首先要编辑crondtab文件,你可以把crondtab理解成一个文本,里面具体记录了需要定时运行的任务。
使用命令crondtab -e可以进入编辑模式。第一次运行时会提示选择编辑器,大家可以选择自己熟悉的方式。
我的编辑模式长这样:
crondtab语句的语法并不难,比如我写的这一句
* 8 * * * python3 /home/ubuntu/test.py
意思就是在每天8点钟执行后面的命令,也就是运行test.py
具体的每个位置的*代表的含义如下图:
大家也可以利用一些在线的服务来检验自己写出的crond表达式。
比如 https://tool.lu/crontab/index.html
使用命令crondtab -l可以列出已经添加入定时任务的语句。
在写完crond表达式后,我们需要启动/关闭crond服务:
service cron start //启动服务 service cron stop //关闭服务 service cron restart //重启服务 service cron reload //重新载入配置
这样我们编写的crond语句就会按配置好的时间重复执行了。
当然了,这只是个定时运行的例子。实测Authorization也是会过期的,具体周期大概是五到七天,也就是说每周得修改一次代码。但是至少这会是一种解决问题的思路。
你有哪些重复性的工作可以交由编程解决?又有哪些定时运行的需求呢?可以留言和我交流,并且自己动手试试。