集大通100%任务完成度签到
一、前言
本文章將講述 我如何一步一步的用python寫一個自己學校的社交app的簽到程序, 由于學校的app簽到和任務是獲得等級經驗的唯一途徑,而等級的提升可以獲得抽獎的資格 ,然而臉黑的我始終沒有得到一個實物的獎勵,氣憤而又懶惰激發了程序員的本能用python寫了 一個小腳本 掛在服務器上 實現了自動簽到,好了 話不多說二、基本環境和工具
python2.7環境 、 python編輯器(pycharm ) Charles(抓包工具) 安卓模擬器(本次使用夜神)三、分析
本次簽到的原理是 模擬手機發送信息實現簽到的功能。據我們所知簽到無非就是一次請求發送 和一個響應回饋,那么我們就需要得到請求的地址和請求的數據,可是手機app我們無法直接的 或者間接的像瀏覽器一樣獲取這些信息,因此我們需要夜神(安卓模擬器)和Charles(抓包工 具)來得到這些。這里我將不給出這些工具的配置過程自己百度。①登陸
點擊登陸抓取數據包
我們可以很容易的在里面得到這樣一條url:https://oa99.jmu.edu.cn/v2/passport/api/user/login1
這條就是登陸賬號密碼的地址,而卻我們可以從它的請求中看到它是以Json格式進行傳輸的格式如下:
經過簡單的分析我們可以知道這里面附帶了包括賬號密碼和客戶端等信息,由于加密方式不知 所以這
這個數據包是我們主要抓取的。
在觀察它的返回信息:
分析這個返回信息它也是json格式通過比較 我們發現 sid 就是他的cookie的值 sid將在送花的
環節起到關鍵的作用 還ticket 我可以大膽的推測它是免密登陸的憑證 但是由于還要測試他的時效
所以這個暫時不管,以后有空在研究。
做到這里我們就可以寫第一部分代碼:
由于python2.7的請求需要證書認證所以在程序的開頭 要取消認證需求 這里的用到cookiejar 是
由于要保持登陸的狀態下完成簽到這里需要cookie的存在 不能簡單的進行請求操作 而cookiejar能
實現這個需求。上述的代碼就實現登陸獲取cookie的操作。
②簽到實現
點擊簽到一天就一次別手抖了 沒抓到
然而簽到卻更加簡單只要請求一下地址不需要數據
在記錄簽到的地址:https://oa99.jmu.edu.cn/ajax/sign/usersign
代碼就很容易:
③生日祝福
點擊祝福
查看數據包
發現這也是一個簡單的請求 并沒有數據需求
觀察反饋信息發現 發返回一個列表里面有今天生日人的信息
那么隨便祝福一位同學:
發現它只要在請求里攜帶 生日人的 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": "FLOWER" }四、完結
基本過程就是如此源碼將上傳git 建議自己實現 下附成果注意 注意 代碼 在這。
轉載于:https://www.cnblogs.com/NewBeeFly/p/9367709.html
總結
以上是生活随笔為你收集整理的集大通100%任务完成度签到的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linu下未编译的mysql安装包
- 下一篇: 最短路 poj1125