-
Notifications
You must be signed in to change notification settings - Fork 0
/
classmates.js
56 lines (53 loc) · 2.58 KB
/
classmates.js
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
const puppeteer = require('puppeteer');
const puppeteerBrowser = puppeteer.launch({ ignoreHTTPSErrors: true });
function classmate(classNum) {
const url1 = 'http://credit.stu.edu.cn/Info/DisplayKkb.aspx?ClassID=';
let url = url1 + classNum;
return new Promise((resolve, reject) => {
puppeteerBrowser.then(async browser => {
const page = await browser.newPage();// 打开一个空白页
await page.goto(url);
let content = await page.evaluate(() => {
let class_info = {
beginTime: '',
className: '',
classNo: '',
classRoom: '',
semester: '',
stuNum: '',
student: [],
teacher: ''
};
class_info.beginTime = document.getElementById('ctl00_cpContent_lbl_Time').innerText;
class_info.className = document.getElementById('ctl00_cpContent_lbl_CourseName').innerText;
class_info.classNo = document.getElementById('ctl00_cpContent_lbl_ClassID').innerText;
class_info.classRoom = document.getElementById('ctl00_cpContent_KkbClassroom').innerText;
class_info.semester = document.getElementById('ctl00_cpContent_lbl_Semester').innerText;
class_info.stuNum = document.getElementById('ctl00_cpContent_lbl_Number').innerText;
let content = [...document.querySelectorAll('.gridview_row> td')].concat([...document.querySelectorAll('.gridview_alter> td')]);
let classmate = [];
for (let i = 0, j = 0, num = 0, len = content.length / 6; i < len; i++, j++) {
let temp = {
number: 0,
name: '',
gender: '',
major: ''
};
temp.number = content[j++].innerText;
temp.name = content[j++].innerText;
temp.gender = content[j++].innerText;
temp.major = content[j++].innerText;
classmate[num] = temp;
num++;
j++;
}
class_info.student = classmate;
class_info.teacher = document.getElementById('ctl00_cpContent_KkbTeacher').innerText;
return class_info;
});
resolve(content);
await page.close();
});
});
}
module.exports = classmate;