selenium 自动抢课——电子科大自动抢课脚本

来源:互联网 发布:纳什职业生涯场均数据 编辑:程序博客网 时间:2024/06/05 17:25

前言:

又到了一学期一度的渣电的退补选,退补选这东西 谁退了谁抢到就是本事,闲着没事,写一个自动化抢课脚本。

使用方法:

0.安装selenium1.username改成自已的学号  pwd改成自已的密码2.coursePath修改成自已想要的课的xpath路径,得到xpath的方法为    使用chrome打开选课页面,找到所选课程,右键"检查",然后再调试界面默认选择的蓝色区域右键copy->copy xpath.即可    如果xpath中间有"或其它特殊符号,在xpath路径里面的"前加\3.刷新不要太频繁

代码:

__author__ = 'jmh081701'#coding:utf8from selenium import webdriverfrom selenium.common.exceptions import NoSuchElementExceptionfrom  selenium.webdriver.common.keys import Keysimport timeimport sysimport threadingclass CourseSelect:    def __int__(self):        pass    def loginToSelectCource(self,id,pwd):        self.url="http://portal.uestc.edu.cn"        self.brower =webdriver.Chrome("C:\\chromedriver.exe")        brower=self.brower        page =brower.get(self.url)        username=brower.find_element_by_id('username')        password=brower.find_element_by_id('password')        username.send_keys(id)        password.send_keys(pwd)        loginBtn=brower.find_element_by_xpath("//*[@id=\"casLoginForm\"]/p[4]/button")        loginBtn.submit()        brower.get("http://eams.uestc.edu.cn/eams/home.action")        time.sleep(2)        brower.get("http://eams.uestc.edu.cn/eams/home.action")        time.sleep(2)        kcgl=brower.find_element_by_xpath("//*[@id=\"MLeft\"]/div/ul/li[2]/a/div")        kcgl.click()        time.sleep(2)        xk=brower.find_element_by_xpath("//*[@id=\"MLeft\"]/div/table[2]/tbody/tr[1]/td[7]/div[2]/a")        xk.click()    def selectA(self,xpath="//*[@id=\"lesson296968\"]/td[11]/a"):    #选A类课        brower=self.brower        urlA="http://eams.uestc.edu.cn/eams/stdElectCourse!defaultPage.action?electionProfile.id=1137"        brower.get(urlA)        try:            brower.switch_to_alert().accept()        except:            pass        xk=brower.find_element_by_xpath(xpath)        xk.click()        brower.switch_to_alert().accept()        time.sleep(1)    def selectB(self,xpath="//*[@id=\"lesson303459\"]/td[11]/a"):    #选B类课        brower=self.brower        brower.get("http://eams.uestc.edu.cn/eams/stdElectCourse!defaultPage.action?electionProfile.id=1138")        try:            brower.switch_to_alert().accept()        except:            pass        xk=brower.find_element_by_xpath(xpath)        xk.click()        brower.switch_to_alert().accept()        time.sleep(1)if __name__ == '__main__':    username='201466666666'    pwd='66666'    xk =CourseSelect()    xk.loginToSelectCource(username,pwd)    coursePath="//*[@id=\"lesson303459\"]/td[11]/a"    while True:        xk.selectB(coursePath)        time.sleep(3)

上面的代码默认选2017年秋季的“素描”课,ok,运行起来,美滋滋!

原创粉丝点击