一、前言

本文章将讲述 我如何一步一步的用python写一个自己学校的社交app的签到程序,
由于学校的app签到和任务是获得等级经验的唯一途径,而等级的提升可以获得抽奖的资格
,然而脸黑的我始终没有得到一个实物的奖励,气愤而又懒惰激发了程序员的本能用python写了
一个小脚本 挂在服务器上 实现了自动签到,好了 话不多说

二、基本环境和工具

python2.7环境 、 python编辑器(pycharm ) Charles(抓包工具) 安卓模拟器(本次使用夜神)

三、分析

本次签到的原理是 模拟手机发送信息实现签到的功能。据我们所知签到无非就是一次请求发送
和一个响应回馈,那么我们就需要得到请求的地址和请求的数据,可是手机app我们无法直接的
或者间接的像浏览器一样获取这些信息,因此我们需要夜神(安卓模拟器)和Charles(抓包工
具)来得到这些。这里我将不给出这些工具的配置过程自己百度。
①登陆


点击登陆抓取数据包

我们可以很容易的在里面得到这样一条url:https://oa99.jmu.edu.cn/v2/passport/api/user/login1
这条就是登陆账号密码的地址,而却我们可以从它的请求中看到它是以Json格式进行传输的格式如下:

{
"flag": 1,
"unitid": 55,
"encrypt": 1,
"imgcode": "",
"account": "账号",
"appid": "273",
"password": "你的密码加密部分",
"clientinfo": "{\"systype\":\"android\",\"platform\":30,\"appid\":\"273\",\"devicetype\":\"N8010\",\"sysver\":\"4.4\",\"platformver\":\"2.3.0\",\"deviceid\":\"352419010446017\"}",
"blowfish": "c7591f0b-d814-4e5b-80ae-cf6675e37c69"
}

经过简单的分析我们可以知道这里面附带了包括账号密码和客户端等信息,由于加密方式不知 所以这
这个数据包是我们主要抓取的。
在观察它的返回信息:

{
"sid": "cookie的值",
"unitid": 55,
"uid": 135348,
"type": 2,
"pwdtime": null,
"bind_uap_account": "paticipant",
"ticket": "门票顾名思义它可能作为免密登陆的凭证"
}

分析这个返回信息它也是json格式通过比较 我们发现 sid 就是他的cookie的值 sid将在送花的
环节起到关键的作用 还ticket 我可以大胆的推测它是免密登陆的凭证 但是由于还要测试他的时效
所以这个暂时不管,以后有空在研究。
做到这里我们就可以写第一部分代码:

import urllib
import urllib2,cookielib
import json
import ssl
import timessl._create_default_https_context = ssl._create_unverified_context#取消证书认证
def http_post(openner):url = 'https://oa99.jmu.edu.cn/v2/passport/api/user/login1'values = {"flag": 1,"unitid": 55,"encrypt": 1,"imgcode": "","account": "201521122039需要改","appid": "273","password": "秘密 改成自己的","clientinfo": "{\"systype\":\"android\",\"platform\":30,\"appid\":\"273\",\"devicetype\":\"N8010\",\"sysver\":\"4.4\",\"platformver\":\"2.3.0\",\"deviceid\":\"352419010446017\"}","blowfish": "fd90991f-8fa9-4ab9-836d-6f41b50ebfb8"
}jdata = json.dumps(values)  # 对数据进行JSON格式化编码req = urllib2.Request(url, jdata)  # 生成页面请求的完整数据response = opener.open(req)  # 发送页面请求return response.read()  # 获取服务器返回的页面信息
cj = cookielib.CookieJar()
opener =urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
resp = http_post(opener)

由于python2.7的请求需要证书认证所以在程序的开头 要取消认证需求 这里的用到cookiejar 是
由于要保持登陆的状态下完成签到这里需要cookie的存在 不能简单的进行请求操作 而cookiejar能
实现这个需求。上述的代码就实现登陆获取cookie的操作。

②签到实现

点击签到一天就一次别手抖了 没抓到

然而签到却更加简单只要请求一下地址不需要数据

在记录签到的地址:https://oa99.jmu.edu.cn/ajax/sign/usersign
代码就很容易:

 Json_post(opener,Qiandao_url,{})
③生日祝福

点击祝福

查看数据包

发现这也是一个简单的请求 并没有数据需求
观察反馈信息发现 发返回一个列表里面有今天生日人的信息
那么随便祝福一位同学:

发现它只要在请求里携带 生日人的 uid 即可 uid 我们要在上面的请求 用正则表达式获取
url:https://oa99.jmu.edu.cn/ajax/birthday/bless
代码:

代码里通过 获取生日列表里的uid 然后祝福前5名同学(任务为三名)

④送花

点击送玫瑰花 观察

发现地址换了

地址:https://wp.jmu.edu.cn/itemc/useitem?cuid=我的uid&sid=我的cookie
分析的结果如上 此时 sid 和uid 就必须事先保存了 需要正则提取response
代码如下:


这里避免尴尬 毕竟送花嘛 我就制定送给舍友了 tuid 送的人的uid

最后一一部很关键 就是领取奖励了 别人的号打码一下:


获取url和json
https://oa99.jmu.edu.cn/ajax/score/receivescore
祝福

json {
"itemcode": "BIRTHBLESS"
}

送花的领取

json
{
"itemcode": "FLOWER"
}

四、完结

基本过程就是如此源码将上传git  建议自己实现
下附成果

注意 注意 代码 在这。

转载于:https://www.cnblogs.com/NewBeeFly/p/9367709.html

集大通100%任务完成度签到相关推荐

  1. 全国计算机考试励志语,2020最新高考励志语锦集精选100句

    这一年决定着你的人生,影响着你的.命运,再苦再累你也得拼. 下面小编为大家收集整理了" 高考励志语",欢迎阅读与借鉴! 高考励志语1 1. 宝剑锋从磨砺出,梅花香自苦寒来. 2.  ...

  2. 【精选】新年元旦手报素材大合集,100份+,比较不错的素材合集

    精选]新年元旦手报素材大合集,100份+,生活需要仪式感,不如弄份手报 这块老师需求比较多吧,给小朋友弄个手抄报还是不错的 文件100份+,素材之类还可以,2022年虎年手抄报,以及以往的均有,提供了 ...

  3. python大佬实战教学_阿里大佬整理Python428集+java356集视频教程+100套实战项目福利...

    要说目前最火热的行业一定是java.Python,不仅薪资高,而且企业对这些人才的需求量也很大,所以工作自然是很好找了(前提是你有一定的技术),经过很多人亲身体验,在自学Java.Python三个月后 ...

  4. 嵌入式外设集 -- 旋钮电位器(360度)

    目录 介绍 关注微信公众号--星之援工作室 发送关键字(360旋钮编码器) 使用的注意事项 技术参数 关键代码讲解 rotary.h rotary.c main.c 介绍 旋钮电位器是一种电子元器件, ...

  5. NBT:人类微生物组千万基因的参考基因集

    文章目录 人类肠道中整合参考基因集 热心肠日报 摘要 要点 Main 结果Results 构建整合基因集 图1. IGC的构建 整合基因集的质量和完整度 图2. IGC覆盖度 IGC中的物种 图3. ...

  6. linux集群流程运行,linux 怎么配置集群

    linux 怎么配置集群?设置虚拟集群是一个比较复杂.耗时的过程,首先需要有两个Red Hat Enterprise Linux或CentOS 7节点,并配置正确的转发及反向 域名系统,由于Red H ...

  7. 蚂蚁集团万级规模 k8s 集群 etcd 高可用建设之路

    蚂蚁集团运维着可能是全球最大的 k8s 集群:k8s 官方以 5k node 作为 k8s 规模化的顶峰,而蚂蚁集团事实上运维着规模达到 10k node 规模的 k8s 集群.一个形象的比喻就是,如 ...

  8. 洛谷P7518:宝石(倍增、可撤销并查集)

    解析 算法一 定义 upx,kup_{x,k}upx,k​ 为节点 xxx 从自己的颜色所在位置在返祖链上往后跳 2k2^k2k 个颜色到达的节点. 可以像倍增一样的求解. 这样对于一次询问 (s,t ...

  9. 一文读懂VictoriaMetrics集群方案

    01 简介 VictoriaMetrics集群方案,除了有单节点方案的优点以外,还可以做到水平扩容,当有大量数据存储时,VictoriaMetrics集群方案是个不错的选择. 官方建议是100w/s以 ...

最新文章

  1. 语音识别数据集的处理在训练之前
  2. 线程撕裂者安装linux,Linux FreeBSD 12.1跑分测试:在AMD Ryzen线程撕裂者3970X上快得刷新认知...
  3. 《走遍中国》珍藏版(二)
  4. java 运行时修改类_在运行时修改类定义的注释字符串参数
  5. Android的Animator动画(平移,渐隐,旋转,缩放)
  6. 计算机的常见故障及解决方法,最全的电脑开机常见故障及解决方法!
  7. 取消磁盘介质写入保护
  8. 抗疫先锋 | IBM:同心抗疫,重塑未来 - emerge smarter!
  9. 看云上 ClickHouse 如何做计算存储分离
  10. 【python环境下Z3约束求解器学习笔记】And和Or的用法
  11. DTI在早期脑发育研究中的应用
  12. 【2016新年版】年度精品 XP,32/64位Win7,32/64位Win8,32/64位Win10系统
  13. 原著《西游记》中的几点不解和穿帮
  14. ssh登陆报错“IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!“问题原因及解决方法
  15. 排球分组循环交叉编排_第九届“理工杯”学生排球比赛正式拉开帷幕
  16. 关于DB2数据库和SQL
  17. Android RecyclerView 横屏禁用滚动/竖屏开启滚动
  18. CC00204.CloudKubernetes——|KuberNetes高级调度.V07|——|初始化容器|InitContainer操作|
  19. 【读书1】【2017】MATLAB与深度学习——代价函数与学习规则(4)
  20. 许远东:砥砺互联网,有人是先锋,有人是炮灰

热门文章

  1. Netty入门之Netty的基本介绍和IO模型
  2. Spring Boot实现一个天气预报系统(一)
  3. 转:初学者简易 .vimrc编写指南
  4. 三分钟了解Mysql的表级锁——《深究Mysql锁》
  5. centos解压zip命令_2、centos下安装elasticsearch-head
  6. python编程怎么做游戏主播_如何成为一名成功的编程主播?
  7. 课时 18-Kubernetes 调度和资源管理(子誉)
  8. mysql ef 分布式事务_分布式事务系列--分布式跨库查询解决方案 mysql federated引擎的使用...
  9. Jmeter之配置元件操作
  10. Linux环境部署jenkins