# 養(yǎng)了個(gè)羊
>最近看養(yǎng)了個(gè)羊挺火的,大眾人群安安份份通關(guān),通關(guān)者寥寥無幾,程序員這邊有的用Java刷,有的用C#刷,有的用Php刷,真是八仙過海啊
---
@[TOC](文章目錄)
---
# 前言
隨筆寫寫Python 版本,可以看看學(xué)學(xué),這樣毫無游戲體驗(yàn),沒辦法,玩啥游戲俺都沒體驗(yàn),王者農(nóng)藥寫的auto.js還秒復(fù)活呢,玩了八年毒奶粉(DNF),結(jié)果玩了八年外掛,當(dāng)時(shí)為了毒奶粉還去學(xué)匯編語言,E語言,哎,真是程序毀游戲,游戲毀程序猿,無聊的很
---
# 一、說下思路吧
>思路其實(shí)很簡(jiǎn)單,但是很重要,跟我微信刷步子一個(gè)思路
>獲取數(shù)據(jù)?修改數(shù)據(jù)?上傳服務(wù)器
>第一版:你登陸?zhàn)B了個(gè)羊,會(huì)有一個(gè)token,這是你的唯一標(biāo)識(shí)碼,說簡(jiǎn)單點(diǎn),就是你身份證號(hào),不可能重復(fù),而且可以辨別你是誰,拿到這個(gè)token之后,然后對(duì)第一關(guān)的接口無線調(diào)用,就可以達(dá)到刷關(guān)的目的了。(第一關(guān)通關(guān)接口跟第二關(guān)通關(guān)接口,差別就在于改了一個(gè)數(shù)字,你把第二關(guān)的數(shù)字放在第一關(guān)的接口上就可以無限通關(guān)了)
>第二版:每次都是需要抓到token才可以刷關(guān),一個(gè)初級(jí)程序員或許會(huì)抓包,但是普通人,他不懂抓包啊,所以有沒有一種簡(jiǎn)單的方法來獲取token,你登陸之后個(gè)人信息有個(gè)ID這個(gè)是唯一的跟token差不多,所以用抓包工具可以抓到生成token那個(gè)鏈接,兩者有沒有關(guān)系呢?結(jié)果發(fā)現(xiàn)那個(gè)鏈接里面拼了ID,哇!那就簡(jiǎn)單了,把用戶的ID拼鏈接里面,token不就拿到了,然后有了這篇文章
# 二、老規(guī)矩,廢話不多說,直接上代碼
```python
import easygui
import requests
headers = {
? ? "user-agent": "Mozilla/5.0 (Linux; Android 10; HD1910 Build/QKQ1.190716.003; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/86.0.4240.99 XWEB/4309 MMWEBSDK/20220303 Mobile Safari/537.36 MMWEBID/583 MicroMessenger/8.0.21.2120(0x280015F0) Process/appbrand1 WeChat/arm64 Weixin NetType/4G Language/zh_CN ABI/arm64 MiniProgramEnv/android"
}
# 獲取基本信息
def user_info(uid):
? ? url = "https://cat-match.easygame2021.com/sheep/v1/game/user_info?"
? ? params = {
? ? ? ? "uid": uid,
? ? ? ? "t": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2OTQ0MDU0MjMsIm5iZiI6MTY2MzMwMzIyMywiaWF0IjoxNjYzMzAxNDIzLCJqdGkiOiJDTTpjYXRfbWF0Y2g6bHQxMjM0NTYiLCJvcGVuX2lkIjoiIiwidWlkIjoxMDg0MzMxMjgsImRlYnVnIjoiIiwibGFuZyI6IiJ9.oT1OY9XokZmHt1Hzifc8ILF1U-xQxY-itXNaeLj02R8"
? ? }
? ? res = requests.get(url, params=params).json()["data"]
? ? return res
# 獲取token
def get_token(uid):
? ? user = user_info(uid)
? ? url = "https://cat-match.easygame2021.com/sheep/v1/user/login_oppo"
? ? data = {
? ? ? ? "uid": user["wx_open_id"],
? ? ? ? "nick_name": user["nick_name"],
? ? ? ? "avatar": user["avatar"],
? ? ? ? "sex": 1
? ? }
? ? res = requests.post(url, data=data, headers=headers).json()['data']['token']
? ? return res
# 每日話題加入羊群
def join_sheep():
? ? url = "https://cat-match.easygame2021.com/sheep/v1/game/topic_game_over?rank_score=1&rank_state=1&rank_time=1&rank_role=1&skin=1"
? ? res = requests.get(url, headers=headers)
? ? print(res.text)
# 刷通關(guān)次數(shù)
def game_over(num):
? ? url = "https://cat-match.easygame2021.com/sheep/v1/game/game_over?rank_score=1&rank_state=1&rank_time=1&rank_role=1&skin=1"
? ? for i in num:
? ? ? ? res = requests.get(url, headers=headers)
if __name__ == '__main__':
? ? t, num = easygui.multenterbox('養(yǎng)了個(gè)羊', '一蓑煙雨任平生',
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? fields=['這里輸入你的個(gè)人信息中的id編號(hào)', '這里輸入你要通關(guān)的次數(shù)'],
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? values=['', ''])
? ? token = get_token(str(t))? # 填寫你自己的uid
? ? headers['t'] = token
? ? join_sheep()
? ? game_over(int(num))
```
>我是普通人,我沒Python環(huán)境,我沒編輯器,運(yùn)行不了這段代碼怎么搞?OK,我給你打成EXE包,你直接用電腦雙擊,這個(gè)會(huì)嗎?(手機(jī)版本的一鍵刷,用小程序應(yīng)該也可以搞,如果這游戲可以撐到下周末的話,搞個(gè)小程序,讓你每天刷,這該死的游戲無聊的很)
---
# 總結(jié)
### 人生苦短 我用Python