def checkFirstLogin(self,num,pwd): #检查是否第一次登录(通过查数据库) count=sql.GetCountOne("User", "UserNumber", num) if count==0: print "第一次登录" self.firstlogin=True stu=actiontojwc.Connectjwc() result=stu.tryconnect(num, pwd, '20111') if result==0: #学期以后一定要设置!!! stu.getUserInfo() stu.logout() self.student=[] self.student.append("none") self.student.append(stu.num) self.student.append(stu.name) self.student.append(stu.pwd) self.student.append(stu.major) self.student.append(stu.grade) self.factory.num=self.factory.num+1 self.factory.users.append(stu.num) self.factory.ip.append(self.transport.getPeer().host) #抓取课程,存入数据库 Field=["UserNumber","UserName","UserPwd","UserMajor","UserGrade"] Values=[stu.num,stu.name,stu.pwd,stu.major,stu.grade] #抓取已选课程 # self.th.callInThread(self.grabCourse) # self.th.callInThread(self.grabScore) threads.deferToThread(self.grabCourse) threads.deferToThread(self.grabScore) #没有异常处理 sql.Insert("User", Field, Values) sql.Insert("Options",["UserNumber"],[stu.num]) self.sendLine("login|||success|||"+stu.num+"|||"+stu.name+"|||"+stu.major+"|||"+stu.grade) #在线用户增加一个,user中增加一个学号,ip增加一个ip self.factory.num=self.factory.num+1 self.factory.users.append(self.student[1]) self.factory.ip.append(self.transport.getPeer().host) self.sendLine("options|||1|||1|||1|||1") elif result==1: self.sendLine("login|||failure|||1") else : self.sendLine("login|||failure|||2") else:#不是第一次登录 print "不是第一次登录" stu=sql.GetData("select * from User where UserNumber="+num)[0] self.student=stu if self.student =="": self.sendLine("login|||failure|||1") elif self.student[3]!=pwd: self.sendLine("login|||failure|||1") else: datalog="login|||success|||"+self.student[1]+"|||"+self.student[2]+"|||"+self.student[4]+"|||"+self.student[5] #学号、姓名、专业、年级 self.sendLine(datalog.encode('UTF-8')) #在线用户增加一个,user中增加一个学号,ip增加一个ip self.factory.num=self.factory.num+1 self.factory.users.append(self.student[1]) self.factory.ip.append(self.transport.getPeer().host) #新学期开始 # if self.newtermstart==True: # threads.deferToThread() self.options=sql.GetData("select * from Options where UserNumber="+num)[0] #模块定制 dataopt="options|||"+self.options[2]+"|||"+self.options[3]+"|||"+self.options[4]+"|||"+self.options[5] self.sendLine(dataopt.encode('UTF-8'))
def GetAllMajorCourse(Account,Password,Term): InsertMajorClass(Account,Password,Term); atry=actiontojwc2.Tojwc() academic="" department="" sepicalty="" get=atry.trytoconnect(Account,Password,Term) if get==0: print time.ctime()+"\t"+"抓取所有专业课---学期:"+Term try: atry.getContents() #获得专业课下的学院分类 select="select * from CourseClass where ParentID=1" result=SQLHelper.GetData(select) for i in range(len(result)): academic=result[i][0] #获得学院下的系分类 select1="select * from CourseClass where ParentID='"+result[i][0]+"'" result1=SQLHelper.GetData(select1) for j in range(len(result1)): department=result1[j][0] #获得系下的专业课分类 select2="select * from CourseClass where ParentID='"+result1[j][0]+"'" result2=SQLHelper.GetData(select2) for k in range(len(result2)): se=str(result2[k][0])#专业课分类号 major=str(result2[k][1])#专业课名称 sepicalty=str(se[4:5])#获取selSepicalty_select 传递字段 #print sepicalty+"--"+se #调用GetCourseGrade获取该专业课下的年级序列 grade=atry.GetCourseGrade(academic, department, sepicalty, "http://jwc.ouc.edu.cn:8080/ouc/SS010.do") if len(grade)>0: #print len(grade) for m in range(len(grade)): course=[]; html=""; #获取当前年级下的html内容 html=atry.GetMajorCourseContont(academic, department, sepicalty, str(grade[m]), "http://jwc.ouc.edu.cn:8080/ouc/SS010.do") #抓取课程信息 course=actiontojwc2.GrabMajorCourse(html) #判断课程信息序列是否为空序列,如果不为空的话就继续操作 if len(course)>0: #print len(course) #print "专业"+str(major)+str(grade[m]) for h in range(len(course)): #for t in range(len(course[h])): #print str(len(course[h])) #print str(course[h][t]) #判断课程是否已经存在于数据库中 ask=["CourseNumber","Grade"] answer=[str(course[h][0]),grade[m]] count=SQLHelper.GetCountMore("MajorCourse", ask,answer) if count==1: continue; else: #如果不存在的话进行插入数据操作 field=["CourseName","CourseNumber","ChooseNumber","TeacherName","CourseTime","XueShi","CourseScore","Money","SchoolHouse","PeopleNumber","Remark","Grade","Term","Academic"] value=[str(course[h][10]),str(course[h][0]),str(course[h][1]),str(course[h][2]),str(course[h][3]),str(course[h][4]),str(course[h][5]),str(course[h][6]),str(course[h][7]),str(course[h][8]),str(course[h][9]),str(grade[m]),Term,str(major)] insert=SQLHelper.Insert("MajorCourse",field ,value) if insert==1: print time.ctime()+"\t"+"ok" continue else: print time.ctime()+"\t"+"wrong" print time.ctime()+"\t"+"专业课抓取完成。" atry.logout() except Exception: atry.logout() print traceback.print_exc() return 3 else : print get