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         

 

posted on 2024-01-14 21:57  wmiot  阅读(990)  评论(0编辑  收藏  举报