new file: course_info.json

modified:   demo.py
	renamed:    main.py -> get_info.py
	new file:   kill_course.py
main
JesterHey 12 months ago
parent 8eb8db6137
commit c2e195f26d

@ -0,0 +1,157 @@
{
"7367": {
"rate": 100,
"type": "\u5fc5\u4fee",
"status": "\u5df2\u5b66\u5b8c"
},
"7366": {
"rate": 100,
"type": "\u5fc5\u4fee",
"status": "\u5df2\u5b66\u5b8c"
},
"7033": {
"rate": 100,
"type": "\u5fc5\u4fee",
"status": "\u5df2\u5b66\u5b8c"
},
"7517": {
"rate": 100,
"type": "\u5fc5\u4fee",
"status": "\u5df2\u5b66\u5b8c"
},
"7032": {
"rate": 100,
"type": "\u5fc5\u4fee",
"status": "\u5df2\u5b66\u5b8c"
},
"7516": {
"rate": 100,
"type": "\u5fc5\u4fee",
"status": "\u5df2\u5b66\u5b8c"
},
"7031": {
"rate": 100,
"type": "\u5fc5\u4fee",
"status": "\u5df2\u5b66\u5b8c"
},
"7515": {
"rate": 100,
"type": "\u5fc5\u4fee",
"status": "\u5df2\u5b66\u5b8c"
},
"6349": {
"rate": 100,
"type": "\u5fc5\u4fee",
"status": "\u5df2\u5b66\u5b8c"
},
"7436": {
"rate": 100,
"type": "\u5fc5\u4fee",
"status": "\u5df2\u5b66\u5b8c"
},
"6937": {
"rate": 0,
"type": "\u57f9\u8bad",
"status": "\u672a\u5b66\u5b8c"
},
"6938": {
"rate": 0,
"type": "\u57f9\u8bad",
"status": "\u672a\u5b66\u5b8c"
},
"6991": {
"rate": 0,
"type": "\u57f9\u8bad",
"status": "\u672a\u5b66\u5b8c"
},
"6992": {
"rate": 62,
"type": "\u57f9\u8bad",
"status": "\u672a\u5b66\u5b8c"
},
"6993": {
"rate": 100,
"type": "\u57f9\u8bad",
"status": "\u672a\u8bc4\u5206"
},
"6995": {
"rate": 100,
"type": "\u57f9\u8bad",
"status": "\u5df2\u5b66\u5b8c"
},
"7006": {
"rate": 100,
"type": "\u57f9\u8bad",
"status": "\u5df2\u5b66\u5b8c"
},
"7007": {
"rate": 100,
"type": "\u57f9\u8bad",
"status": "\u5df2\u5b66\u5b8c"
},
"7010": {
"rate": 100,
"type": "\u57f9\u8bad",
"status": "\u5df2\u5b66\u5b8c"
},
"7011": {
"rate": 100,
"type": "\u57f9\u8bad",
"status": "\u5df2\u5b66\u5b8c"
},
"7554": {
"rate": 100,
"type": "\u9009\u4fee",
"status": "\u5df2\u5b66\u5b8c"
},
"7553": {
"rate": 100,
"type": "\u9009\u4fee",
"status": "\u5df2\u5b66\u5b8c"
},
"7552": {
"rate": 100,
"type": "\u9009\u4fee",
"status": "\u5df2\u5b66\u5b8c"
},
"7551": {
"rate": 100,
"type": "\u9009\u4fee",
"status": "\u5df2\u5b66\u5b8c"
},
"7550": {
"rate": 100,
"type": "\u9009\u4fee",
"status": "\u5df2\u5b66\u5b8c"
},
"7549": {
"rate": 100,
"type": "\u9009\u4fee",
"status": "\u5df2\u5b66\u5b8c"
},
"7548": {
"rate": 100,
"type": "\u9009\u4fee",
"status": "\u5df2\u5b66\u5b8c"
},
"7547": {
"rate": 100,
"type": "\u9009\u4fee",
"status": "\u5df2\u5b66\u5b8c"
},
"7546": {
"rate": 100,
"type": "\u9009\u4fee",
"status": "\u5df2\u5b66\u5b8c"
},
"7545": {
"rate": 100,
"type": "\u9009\u4fee",
"status": "\u5df2\u5b66\u5b8c"
},
"7564": {
"rate": 0,
"type": "\u9009\u4fee",
"status": "\u672a\u5b66\u5b8c"
}
}

@ -1,6 +1,4 @@
from DrissionPage import ChromiumPage
import json
# 创建页面对象,并启动或接管浏览器
page = ChromiumPage()
# 跳转到登录页面
page.get('https://g1879.gitee.io/drissionpagedocs/get_start/examples/control_browser')
info = json.load(open('course_info.json', 'r'))
print(info)

@ -1,10 +1,12 @@
from DrissionPage import WebPage
from DrissionPage.common import *
from collections import *
import time
import json
# http://hnqmgc.17el.cn/grzx/
def decode(s):
return json.loads('"%s"' %s) # 由于页面源码中的json字符串是单引号包裹的所以需要转换成双引号包裹的json字符串
# 创建页面对象,并启动或接管浏览器
page = WebPage()
# 跳转到登录页面
@ -31,7 +33,8 @@ page.ele('@value=0').click()
# 获取总页数
course_info = {}
# <div class="paginationjs-nav J-paginationjs-nav">1 / 4</div>
total_page = int(page.ele('.paginationjs-nav J-paginationjs-nav').text[-1])
# total_page = int(page.ele('.paginationjs-nav J-paginationjs-nav').text)
total_page = 4
for i in range(total_page):
# 逐页读取课程信息和完成状态并存放到字典中
tbodys = page.ele('#tbody')
@ -39,16 +42,18 @@ for i in range(total_page):
trs = tbodys.eles('tag:tr')
for tr in trs:
cur_info = tr.text.split('\t')
print(cur_info)
course_id = cur_info[0] # 课程id
course_rate = cur_info[3] # 课程完成百分比
course_status = cur_info[4] # 课程完成状态(是否完成习题/评价)
course_id = cur_info[0] # 课程id
course_type = cur_info[2] # 课程类型
course_rate = int(cur_info[3][:-1]) # 课程完成百分比
course_status = cur_info[4] # 课程完成状态(是否完成习题/评价)
print(course_id, course_rate, course_status)
# 存放到字典中
course_info[course_id] = {'rate': course_rate, 'status': course_status}
course_info[course_id] = {'rate': course_rate,'type': course_type,'status': course_status}
if i != total_page - 1:
page.ele('@type=text').input(i + 2)
page.ele('@value=跳转').click()
page.ele('@title=Next page').click()
time.sleep(1)
print(len(course_info))
page.close_session()
# 写入json文件中
with open('course_info.json', 'w') as f:
json.dump(course_info, f)

@ -0,0 +1,14 @@
from DrissionPage import ChromiumPage
from DrissionPage.common import *
from collections import *
import time
import json
# 统计课程完成情况
cnt = defaultdict(list)
# 读取课程信息
info = json.load(open('course_info.json', 'r'))
for k, v in info.items():
if v['rate'] < 100:
cnt[v['type']].append(k)
print(cnt)
# 按必修-选秀-专题-培训执行刷课
Loading…
Cancel
Save