云战役自动打卡脚本

云战役自动打卡脚本

前言

实在苦恼于每天云战役打卡,于是写了一个python脚本用来进行每天自动打卡。涉及到的知识点有requests,yagmail,schedule,以及一点点的js分析,先来看下效果图,将每天的打卡情况通过yagmail发送到邮箱,定时的部分可以用schedule做或者放到PC上的定时脚本中,有条件的直接放到服务器上

话不多说,正式开始

分析流程

由于进行了headers验证,首先需要改成手机端的请求头

然后是登录抓post请求,老方法,先写个错误的密码看看

发现post请求data只需要两个参数,用户名和密码,而且密码还是明文的,没有进行js加密,那这就很简单了,我们直接request发送一个post请求即可,为了不用管理cookies,因此我用requests.sesion()代替,具体代码可以看最后

然后我们填写正确的用户名密码进入这个页面

还是一样,填写好内容抓post请求,我们看看参数

下面的都直接复制即可,但是有一个参数我们要找出来,就是uuid,只有知道了这个值,我们之后就迎刃而解,currentResd是家庭住址哈,我这里码掉了。因此,问题的关键就是找到这个uuid在哪生成的。

uuid查找过程

首先发现不在这个post请求的cookie里,那就有可能是后端传来的或者是前端加密的,然后全局搜索uuid,可以看到,发现了倪端

这个值也就是_ncov_uuid,而且都在cookie中,并且连图标的请求都带有这个cookie,所有的证据都指向了一点:这个值是后端一开始就传到前端来的,因此我们重新抓登录的页面

好家伙,藏这呢

那接下来就很容易了,具体的看最下面代码

一个新的问题

当我在编写python脚本的时候,发现了一个新的问题,这个值是哪来的??我原以为是js进行了分割

后来去前端进行了查找,发现这个值来自于一个对象

再对这个对象进行查找

发现是https://ip.ws.126.net/ipquery对这个网站的一个get请求,然后我访问这个网站,得到的是一个地址,由于这个请求并没有携带任何参数,我猜是对ip地址进行归属查询,因此我还需要对这个网址进行一个get请求。

使用方法

注意yaml文件参数都需要改

方法一:

解压文件夹,修改yaml文件参数后,运行同目录下.exe文件即可(切记不要关闭,每天早上10点半前脚本需运行),这种方法可以是可以,但要保证每天10点半电脑开机且运行该脚本

方法二:

windows10定时任务,这个会比方法一简单,配置可能会多几步

https://jingyan.baidu.com/article/9080802200cc15fd91c80fcf.html

定时开机

https://jingyan.baidu.com/article/15622f2419ff79fdfcbea5db.html

方法三:

放到服务器上执行,一劳永逸

方法四:

这个方法还没有实现,我打算以后写个简单的脚本管理Web挂到我的服务器上,这样子只要访问我的url添加即可(这种最简单,以后再说)

方法五:

账号密码地址邮箱发我,我帮你打🐶

后序优化方案

  • 异常处理这块需要完善,没判断密码错的情况,,,以后再说以后再说

  • 可以起一个服务器(tomcat,flask,django等等)进行简单的可视化管理

  • url,param写死在了py文件中,可以抽出来放到yaml,txt等文件中

  • 可以写个thinker或者pyQ5

  • 总觉得很耦合,学了设计模式再改吧

目前想到了这么多(目前也没能力改),能力有限,再说。

源码地址

https://gitee.com/xin_cheng_wang11/crawler_demo/tree/master

软件地址(.exe格式)

链接: https://pan.baidu.com/s/1sHY4-c6Ucwxy6jgYAvHwBw

提取码: 7q82

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值