forked from 1wyy/JsQndxx_Python
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmain.py
71 lines (63 loc) · 2.48 KB
/
main.py
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
#!/usr/bin/python
# -*- coding: UTF-8 -*-
"""
@author:yuzai
@file:main.py
@time:2022/03/18
"""
import re
import requests
import urllib3
from bs4 import BeautifulSoup
def main(laravel_session): # 参数为cookie里的laravel_session 自行抓包获取
s = requests.session() # 创建会话
loginurl = "https://service.jiangsugqt.org/youth/lesson" # 江苏省青年大学习接口
# 参数
params = {
"s": "/youth/lesson",
"form": "inglemessage",
"isappinstalled": "0"
}
# 构造请求头
headers = {
'User-Agent': "Mozilla/5.0 (iPhone; CPU iPhone OS 15_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.18(0x18001234) NetType/WIFI Language/zh_CN",
'Cookie': "laravel_session=" + laravel_session # 抓包获取
}
urllib3.disable_warnings() # 不然会有warning
login = s.get(url=loginurl, headers=headers, params=params, verify=False) # 登录
# print(login.text)
login_soup = BeautifulSoup(login.text, 'html.parser') # 解析信息确认页面
# print(soup.select(".confirm-user-info"))
userinfo = login_soup.select(".confirm-user-info p") # 找到用户信息div 课程姓名编号单位
# print(userinfo)
dict = {} # 构建用户信息字典
for i in userinfo:
# print(i)
info_soup = BeautifulSoup(str(i), 'html.parser') # 分布解析课程姓名编号单位信息
# print(info_soup.get_text())
item = info_soup.get_text() # 用户信息
# print(item[:4],item[5:])
dict[item[:4]] = item[5:]
token = re.findall(r'var token ?= ?"(.*?)"', login.text) # 获取js里的token
lesson_id = re.findall(r"'lesson_id':(.*)", login.text) # 获取js里的token
# print("token:%s"%token[0])
# print("lesson_id:%s"%lesson_id[0])
dict['token'] = token[0]
dict['lesson_id'] = lesson_id[0]
print(dict)
confirmurl = "https://service.jiangsugqt.org/youth/lesson/confirm"
params = {
"_token": token[0],
"lesson_id": lesson_id[0]
}
res = s.post(url=confirmurl, params=params)
# print(res2.text)
res = res.json() # 返回结果转json
print("返回结果:%s" % res)
if res["status"] == 1 and res["message"] == "操作成功":
print("青年大学习已完成")
else:
print("error")
if __name__ == '__main__':
laravel_session = "8rAucTd84mpMLxilmCjeWO08rbtC7opDnrwosdaa" #自行抓包获取40位的laravel_session
main(laravel_session)