快盘下载:好资源、好软件、快快下载吧!

快盘排行|快盘最新

当前位置:首页软件教程电脑软件教程 → 记录一次编写自动签到脚本的过程

记录一次编写自动签到脚本的过程

时间:2022-09-16 06:21:02人气:作者:快盘下载我要评论
本篇文章主要记录一次编写自动签到Shell脚本的过程,文末附源码地址。

复制Cookie+CURL命令

最近有一个网站需要天天签到,显而易见的是手动签到太麻烦了,肯定是写脚本啊,偷了下懒,直接用chrome审查元素找到“签到按钮”对应的方法,点击签到按钮后,切换到NetWork栏右键复制签到方法的CURL。

记录一次编写自动签到脚本的过程

echo$(curl "http://f76c" -X POST -H "Connection: keep-alive" -H "Content-Length: 0" -H "Accept-Language: zh-CN,zh;q=0.9,en;q=0.8" -H "Cookie: yunsuo_session_verify=yunsuo_session; uid=12234; email=haocoding^%^net; key=lasd9yfnq2n2u9823h5nad" --compressed --insecure) >> /test/autoCheckIn.log

再执行命令,OK签到成功,完美:

其实这样扔到Crontab中就行了,但是这不符合我的作风啊,每天都定点签到一分不差,万一网站有检测机制给我封号了呢,所以我们要设置随机时间签到,还要记录签到时间和结果,这才完美嘛。

实现随机时间签到

基本思路:

①CRUL命令自动签到,记录签到结果到autoCheckIn.log。

②签到成功与否都要记录下签到时间,写入lastDate.log。

③根据lastDate.log取出上次签到的时间,加上($RANDOM%)随机函数生成下次签到时间。

④根据下次签到时间生成Crontab命令并写入。

⑤【视情况决定是否启用】备份Crontab命令,之后导入必需的Crontab命令,用>导入,用途是清空无用的每次签Crontab命令。

如果大家有不懂的地方可以看这篇文章,里面有这个Shell脚本的所有知识点:【程序猿硬核科普】Linux下Shell编程杂记

贴出源码:

#! /bin/sh

#先备份Crontab命令
crontab -l > /test/autoCheckIn/backCrontab/backCrontab-$(date +%Y-%m-%d).log
#之后导入必需的Crontab命令,用>导入,用途是清空无用的签到Crontab命令
cat /test/autoCheckIn/importantCrontab.log > /var/spool/cron/root

#本次签到时间写到lastDate.log中:2020-02-24 11:50
signDate=$(date +%Y-%m-%d)' '$(date +%H:%M)

#获取上次执行时间
lastDate=$(cat /test/autoCheckIn/lastDate.log)

#下次执行分钟:1~30
nextMinute=`expr $(($RANDOM%30)) + 1`
#下次执行小时:1~2
nextHour=`expr $(($RANDOM%2)) + 1`
#下次执行时间
nextDate=$(date -d "$lastDate 1 days")
nextDate=$(date -d "$nextDate $nextHour hour")
nextDate=$(date -d "$nextDate $nextMinute minute" +"%Y%m%d%H%M")
#echo '下次执行时间nextDate='$nextDate

#下次签到的年份
#signYear=${nextDate: 0: 4}
#下次签到的月份
signMonth=${nextDate: 4: 2}
#下次签到的日期
signDay=${nextDate: 6: 2}
#下次签到的小时
signHour=${nextDate: 8: 2}
#下次签到的分钟
signMinute=${nextDate: 10: 2}

#下次签到日志时间 *需要特殊处理,换成0-7是一样的意思
nextSignYear=$signMinute' '$signHour' '$signDay' '$signMonth' 0-7'
#echo 'nextSignYear='$nextSignYear

#表示当前登陆的用户
user=root
#Crontab命令路径相当于[crontab –e]
path=/var/spool/cron/
nextSignCrontab=' /test/autoCheckIn/autoCheckIn.sh'
#echo 'nextSignCrontab='$nextSignCrontab
#生成crontab 任务配置文件 >>是追加内容
echo $nextSignYear$nextSignCrontab >> $path$user

#签到失败结果
fail={"msg":"u60a8u4f3cu4e4eu5df2u7ecfu7b7eu5230u8fc7u4e86...","ret":1}
#读取签到结果
tmpResult=$(curl "http://f76c" -X POST -H "Connection: keep-alive" -H "Content-Length: 0" -H "Accept-Language: zh-CN,zh;q=0.9,en;q=0.8" -H "Cookie: yunsuo_session_verify=yunsuo_session; uid=12234; email=haocoding^%^net; key=lasd9yfnq2n2u9823h5nad" --compressed --insecure)

#取得签到成功结果中:找到的第一个'MB'左边所有字符
tmpStr=${tmpResult%%MB*}
#取得三位数的MB[从右起第四个字符开始截取三个字符]
tmpStr2=${tmpStr: 0-4: 3}
#成功签到结果
successResult='本次签到获得了:'$tmpStr2'MB流量。'

if [ $fail = $tmpResult ]
then
  echo $signDate":签到失败!" >> /test/autoCheckIn/autoCheckIn.log
else
  echo $signDate":签到成功!"$successResult >> /test/autoCheckIn/autoCheckIn.log
fi

#不管签到成功与否,暂时先假设每次都签到成功,不然下次签到没法进行
echo $signDate > /test/autoCheckIn/lastDate.log

#重启crontab命令
sudo service crond restart

Github源码下载地址:

https://github.com/jiahaoit/haoconding.git

参考文章

1、ubuntu crontab 在时间段内随机执行一次

https://www.cnblogs.com/cocoajin/p/6676065.html

2、自己编写自动签到脚本

https://www.jianshu.com/p/579675691cf9

相关文章

  • Xshell怎么连接交换机?-Xshell连接交换机教程

    Xshell怎么连接交换机?-Xshell连接交换机教程,小伙伴们知道Xshell怎么连接交换机吗?今天小编就来讲解Xshell连接交换机教程,感兴趣的快跟小编一起来看看吧,希望能够帮助到大家呢。...
  • Xshell怎么进行分页?-Xshell进行分页教程

    Xshell怎么进行分页?-Xshell进行分页教程,小伙伴们知道Xshell怎么进行分页吗?今天小编就来讲解Xshell进行分页教程,感兴趣的快跟小编一起来看看吧,希望能够帮助到大家呢。...

网友评论

快盘下载暂未开通留言功能。

关于我们| 广告联络| 联系我们| 网站帮助| 免责声明| 软件发布

Copyright 2019-2029 【快快下载吧】 版权所有 快快下载吧 | 豫ICP备10006759号公安备案:41010502004165

声明: 快快下载吧上的所有软件和资料来源于互联网,仅供学习和研究使用,请测试后自行销毁,如有侵犯你版权的,请来信指出,本站将立即改正。