selenium 自动抢课——电子科大自动抢课脚本
·
前言:
又到了一学期一度的渣电的退补选,退补选这东西 谁退了谁抢到就是本事,闲着没事,写一个自动化抢课脚本。
使用方法:`
- 安装selenium
- username改成自已的学号
pwd改成自已的密码 - coursePath修改成自已想要的课的xpath路径,得到xpath的方法为
使用chrome打开选课页面,找到所选课程,右键"检查",然后再调试界面默认选择的蓝色区域右键copy->copy xpath.即可
如果xpath中间有"或其它特殊符号,在xpath路径里面的"前加\ - 刷新不要太频繁
代码:
__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,运行起来,美滋滋!
更多推荐
所有评论(0)