2023年考研成绩提前查脚本
1 import requests 2 import urllib3 3 import time 4 import json 5 urllib3.disable_warnings() 6 url = "https://yz.chsi.com.cn/apply/cjcx/cjcx.do" 7 headers = { 8 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36', 9 'Referer': 'https://yz.chsi.com.cn/apply/cjcx/t/10574.dhtml', 10 'Accept-Encoding': 'gzip, deflate, br', 11 'Accept-Language': 'zh-CN,zh;q=0.9', 12 'Origin': 'https://yz.chsi.com.cn' 13 } 14 15 def send_wechat(msg): 16 17 token = '11ec1121dafdasfadsf31232143fa'#前边复制到那个token,在pushpush网站中可以找到 18 title = '考研初试成绩查询' #改成你要的标题内容 19 content = msg #改成你要的正文内容 20 template = 'html' #改成你要的模板 21 urls = "https://www.pushplus.plus/send" 22 print(urls) 23 24 data = { 25 "token":token, 26 "title":title, 27 "content":content, 28 "template":template 29 } 30 31 body=json.dumps(data).encode(encoding='utf-8') 32 r=requests.post(url=urls,data=body,headers=headers) 33 print(r.text) 34 def main(): 35 data = { 36 "xm": "陈某某",//你的姓名 37 "zjhm": "208208208208208",//你的身份证号码 38 "ksbh": "208208208208",//你的准考证号 39 "bkdwdm": "10574",//报考院校代码,比如中山大学的10574 40 "checkcode": "" 41 } 42 43 respose = requests.post(url=url,headers=headers,data=data) 44 if "无查询结果" in respose.text: 45 print("考研成绩还没有出") 46 pass 47 else: 48 msg = '考研初试成绩已出' 49 print("可以查询了") 50 send_wechat(msg) 51 52 if __name__ == '__main__': 53 while True: 54 main() 55 time.sleep(60)
1 from time import sleep 2 import requests 3 import urllib3 4 import time 5 import json 6 import random 7 from configparser import ConfigParser 8 import configparser 9 import sys 10 import os 11 import os.path 12 urllib3.disable_warnings() 13 url = "https://yz.chsi.com.cn/apply/cjcx/cjcx.do" 14 filenames='config.ini' 15 16 class configini: 17 def __init__(self,filenames): 18 self.conf=ConfigParser() #实例化 19 self.conf.read(filenames=filenames, encoding='utf-8-sig') #读取文件 20 21 def get_str_val(self,section,option): 22 str_val = self.conf.get(section=section, option=option) #获取sections下对应key的值,默认返回str类型 23 return str_val 24 25 def get_int_val(self,section,option): 26 int_val = self.conf.getint(section=section, option=option) #获取sections下对应key的值,默认返回int类型 27 return int_val 28 29 def get_bool_val(self,section,option): 30 bool_val = self.conf.getboolean(section=section, option=option) #获取sections下对应key的值,默认返回bool类型 31 return bool_val 32 33 def get_folat_val(self,section,option): 34 float_val = self.conf.getfloat(section=section, option=option) #获取sections下对应key的值,默认返回float类型 35 return float_val 36 37 38 39 def set_header(): 40 config=configini(filenames) 41 """ 42 1、随机生成ip,设置X-Forwarded-For 43 ip需要控制ip段,不然生成的大部分是国外的 44 2、多组user-agent随机换 45 :return: 46 """ 47 ip = '{}.{}.{}.{}'.format(112, random.randint(64, 68), random.randint(0, 255), random.randint(0, 255)) 48 headers_list = [ 49 { 50 'user-agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1' 51 }, { 52 'user-agent': 'Mozilla/5.0 (Linux; Android 8.0.0; SM-G955U Build/R16NW) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Mobile Safari/537.36' 53 }, { 54 'user-agent': 'Mozilla/5.0 (Linux; Android 10; SM-G981B) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.162 Mobile Safari/537.36' 55 }, { 56 'user-agent': 'Mozilla/5.0 (iPad; CPU OS 13_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/87.0.4280.77 Mobile/15E148 Safari/604.1' 57 }, { 58 'user-agent': 'Mozilla/5.0 (Linux; Android 8.0; Pixel 2 Build/OPD3.170816.012) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Mobile Safari/537.36' 59 }, { 60 'user-agent': 'Mozilla/5.0 (Linux; Android) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.109 Safari/537.36 CrKey/1.54.248666' 61 }, { 62 'user-agent': 'Mozilla/5.0 (X11; Linux aarch64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.188 Safari/537.36 CrKey/1.54.250320' 63 }, { 64 'user-agent': 'Mozilla/5.0 (BB10; Touch) AppleWebKit/537.10+ (KHTML, like Gecko) Version/10.0.9.2372 Mobile Safari/537.10+' 65 }, { 66 'user-agent': 'Mozilla/5.0 (PlayBook; U; RIM Tablet OS 2.1.0; en-US) AppleWebKit/536.2+ (KHTML like Gecko) Version/7.2.1.0 Safari/536.2+' 67 }, { 68 'user-agent': 'Mozilla/5.0 (Linux; U; Android 4.3; en-us; SM-N900T Build/JSS15J) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' 69 }, { 70 'user-agent': 'Mozilla/5.0 (Linux; U; Android 4.1; en-us; GT-N7100 Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' 71 }, { 72 'user-agent': 'Mozilla/5.0 (Linux; U; Android 4.0; en-us; GT-I9300 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30' 73 }, { 74 'user-agent': 'Mozilla/5.0 (Linux; Android 7.0; SM-G950U Build/NRD90M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.84 Mobile Safari/537.36' 75 }, { 76 'user-agent': 'Mozilla/5.0 (Linux; Android 8.0.0; SM-G965U Build/R16NW) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.111 Mobile Safari/537.36' 77 }, { 78 'user-agent': 'Mozilla/5.0 (Linux; Android 8.1.0; SM-T837A) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.80 Safari/537.36' 79 }, { 80 'user-agent': 'Mozilla/5.0 (Linux; U; en-us; KFAPWI Build/JDQ39) AppleWebKit/535.19 (KHTML, like Gecko) Silk/3.13 Safari/535.19 Silk-Accelerated=true' 81 }, { 82 'user-agent': 'Mozilla/5.0 (Linux; U; Android 4.4.2; en-us; LGMS323 Build/KOT49I.MS32310c) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/102.0.0.0 Mobile Safari/537.36' 83 }, { 84 'user-agent': 'Mozilla/5.0 (Windows Phone 10.0; Android 4.2.1; Microsoft; Lumia 550) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Mobile Safari/537.36 Edge/14.14263' 85 }, { 86 'user-agent': 'Mozilla/5.0 (Linux; Android 6.0.1; Moto G (4)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Mobile Safari/537.36' 87 }, { 88 'user-agent': 'Mozilla/5.0 (Linux; Android 6.0.1; Nexus 10 Build/MOB31T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36' 89 }, { 90 'user-agent': 'Mozilla/5.0 (Linux; Android 4.4.2; Nexus 4 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Mobile Safari/537.36' 91 }, { 92 'user-agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Mobile Safari/537.36' 93 }, { 94 'user-agent': 'Mozilla/5.0 (Linux; Android 8.0.0; Nexus 5X Build/OPR4.170623.006) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Mobile Safari/537.36' 95 }, { 96 'user-agent': 'Mozilla/5.0 (Linux; Android 7.1.1; Nexus 6 Build/N6F26U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Mobile Safari/537.36' 97 }, { 98 'user-agent': 'Mozilla/5.0 (Linux; Android 8.0.0; Nexus 6P Build/OPP3.170518.006) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Mobile Safari/537.36' 99 }, { 100 'user-agent': 'Mozilla/5.0 (Linux; Android 6.0.1; Nexus 7 Build/MOB30X) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36' 101 }, { 102 'user-agent': 'Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 520)' 103 }, { 104 'user-agent': 'Mozilla/5.0 (MeeGo; NokiaN9) AppleWebKit/534.13 (KHTML, like Gecko) NokiaBrowser/8.5.0 Mobile Safari/534.13' 105 }, { 106 'user-agent': 'Mozilla/5.0 (Linux; Android 9; Pixel 3 Build/PQ1A.181105.017.A1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.158 Mobile Safari/537.36' 107 }, { 108 'user-agent': 'Mozilla/5.0 (Linux; Android 10; Pixel 4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Mobile Safari/537.36' 109 }, { 110 'user-agent': 'Mozilla/5.0 (Linux; Android 11; Pixel 3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.181 Mobile Safari/537.36' 111 }, { 112 'user-agent': 'Mozilla/5.0 (Linux; Android 5.0; SM-G900P Build/LRX21T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Mobile Safari/537.36' 113 }, { 114 'user-agent': 'Mozilla/5.0 (Linux; Android 8.0; Pixel 2 Build/OPD3.170816.012) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Mobile Safari/537.36' 115 }, { 116 'user-agent': 'Mozilla/5.0 (Linux; Android 8.0.0; Pixel 2 XL Build/OPD1.170816.004) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Mobile Safari/537.36' 117 }, { 118 'user-agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1' 119 }, { 120 'user-agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1' 121 }, { 122 'user-agent': 'Mozilla/5.0 (iPad; CPU OS 11_0 like Mac OS X) AppleWebKit/604.1.34 (KHTML, like Gecko) Version/11.0 Mobile/15A5341f Safari/604.1' 123 },{ 124 "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36 Edg/109.0.1518.78" 125 } 126 ] 127 header = { 128 'X-Forwarded-For': ip, 129 "User-Agent": str(random.choice(headers_list)["user-agent"]), 130 "Referer": "https://yz.chsi.com.cn/apply/cjcx/t/"+config.get_str_val(section='base',option='bkdwdm')+".dhtml" 131 } 132 return header 133 134 135 def send_wechat(msg): 136 137 config=configini(filenames) 138 token=config.get_str_val(section='base',option='token')#前边复制到那个token,在pushpush网站中可以找到 139 title = '考研初试成绩查询' #改成你要的标题内容 140 content = msg #改成你要的正文内容 141 template = 'html' #改成你要的模板 142 urls = "https://www.pushplus.plus/send" 143 print(urls) 144 145 data = { 146 "token":token, 147 "title":title, 148 "content":content, 149 "template":template 150 } 151 152 body=json.dumps(data).encode(encoding='utf-8') 153 headers=set_header() 154 r=requests.post(url=urls,data=body,headers=headers,verify=False,timeout=(5)) 155 print(r.text) 156 157 158 def main(): 159 config=configini(filenames) 160 print(config.get_str_val(section='base',option='xm')+"考生") 161 162 data={ 163 "xm": config.get_str_val(section='base',option='xm'), 164 "zjhm": config.get_str_val(section='base',option='zjhm'), 165 "ksbh": config.get_str_val(section='base',option='ksbh'), 166 "bkdwdm": config.get_str_val(section='base',option='bkdwdm'), 167 "checkcode": "" 168 } 169 170 header=set_header() 171 respose=requests.post(url=url,headers=header,data=data,verify=False,timeout=(5))#关闭 SSL 验证 172 173 #print(respose.text) 174 175 if respose.ok==True: 176 if config.get_str_val(section='base',option='key') in respose.text: 177 msg = '考研初试成绩已出' 178 #msg = respose.text 179 #print("可以查询了") 180 #print(respose.text) 181 current_path = os.getcwd() 182 print(current_path) 183 file_path = os.path.join(current_path, 'test.txt') 184 file_test = open(file_path, 'w', encoding='utf-8') 185 file_test.write(respose.text) 186 file_test.close() 187 188 for x in range(1): 189 send_wechat(msg) 190 sys.exit() 191 else: 192 print("考研成绩还没有出") 193 respose.close() 194 else: 195 respose.close() 196 197 def random_sleep(mu, sigma): 198 '''正态分布随机睡眠 199 :param mu: 平均值 200 :param sigma: 标准差,决定波动范围 201 ''' 202 secs = random.normalvariate(mu, sigma) 203 if secs <= 0: 204 secs = mu # 太小则重置为平均值 205 return secs 206 207 208 if __name__ == '__main__': 209 210 while True: 211 try: 212 main() 213 config=configini(filenames) 214 times=random_sleep(float(config.get_str_val(section='base',option='mu')),float(config.get_str_val(section='base',option='sigma'))) 215 time.sleep(times) 216 print(f"正态分布随机休眠了{times}秒") 217 except Exception as e: 218 print(e) 219 220