1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
| import time import random
import requests from loguru import logger
from settings import T, GAME, GAME_COUNT, TOPIC, TOPIC_COUNT
SESSIONS = requests.session()
class Yang:
def __init__(self): self.url = 'https://cat-match.easygame2021.com/sheep/v1/game/'
@staticmethod def random(): return random.randint(120, 4800)
def get(self, url): headers = { 'Host': 'cat-match.easygame2021.com', 't': self.t, 'user-agent': 'Mozilla/5.0 (Linux; Android 7.1.2; Mi 10 Pro Build/N2G47H; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/86.0.4240.99 XWEB/4313 MMWEBSDK/20220706 Mobile Safari/537.36 MMWEBID/7862 MicroMessenger/8.0.25.2180(0x28001931) WeChat/arm64 Weixin NetType/WIFI Language/zh_CN ABI/arm64 MiniProgramEnv/android', 'Referer': 'https://servicewechat.com/wx141bfb9b73c970a9/17/page-frame.html', 'Accept-Encoding': 'gzip,compress,br,deflate' } try: response = SESSIONS.get(url, headers=headers, timeout=5) json = response.json() if json['err_code'] == 10003: return 1 except Exception: return 2
return 3
def run(self, url, name, counts: int): for count in range(counts): data = self.get(url) if data == 1: logger.error(f'{name}t 值不正确,该账号结束') break elif data == 2: logger.error(f'{name}第 {count + 1} 次请求失败,该账号结束') break else: logger.info(f'{name}第 {count + 1} 次请求成功') time.sleep(10) return data
def get_game(self, name, counts: int): ''' 羊群闯关 ''' url = f'{self.url}game_over?rank_score=1&rank_state=1&rank_time={Yang.random()}&rank_role=1&skin=1' return self.run(url, name, counts)
def get_topic(self, name, counts: int): ''' 话题闯关 ''' url = f'{self.url}topic_game_over?rank_score=1&rank_state=1&rank_time={Yang.random()}&rank_role=2&skin=1' return self.run(url, name, counts)
def main(self): for index, t in enumerate(T): name = index + 1 self.t = t logger.info(f'运行第【{name}】个账号') if GAME is True: game_name = f'账号 {name} 羊群闯关:' if self.get_game(game_name, GAME_COUNT) != 3: continue if TOPIC is True: topic_name = f'账号 {name} 话题闯关:' self.get_topic(topic_name, TOPIC_COUNT)
logger.info('所有账号执行完毕')
if __name__ == '__main__': Yang().main()
|