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