前言:

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

使用方法:`

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

代码:

__author__ = 'jmh081701'

#coding:utf8
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
from  selenium.webdriver.common.keys import Keys
import time
import sys
import threading



class 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,运行起来,美滋滋!

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐