目录
前言
本人南京农业大学本科,由于抢不到课,于是写了个抢课代码,有点小bug,但效果还可以
小白学习,大佬勿喷
提示:以下是本篇文章正文内容,下面案例可供参考
一、前期准备
1.python环境搭建+VScode安装配置
这里网上有许多教程,这里就不多说了,推荐一个UP主,保姆级教程
保姆级Python环境配置与VSCode配置_哔哩哔哩_bilibili
2.安装selenium包+谷歌浏览器驱动程序
同样推荐一个up主,有详细教程
Python + Selenium Web自动化 全套教程 自动化测试 软件测试_哔哩哔哩_bilibili
3.其它方法
当然也可以python官网安装python文本编译器,使用pip指令安装selenium包即可
二、代码(部分,如果需要可以私信)
代码功能是查询哲学方法类的课程,发现相应课程数量不为0时,点击选课,否则3s一次刷新网页,代码会一直运行,直到查到相应的课程
运行过程中会出现无法锁定元素的问题,如果运行中断,重新执行代码即可(这是个小bug)
注:以下所有代码仅限于“哲学方法”类课程的选课,本代码写于2021/8/31,亲测有效,后期可能会由于网站更新等原因,无法使用,后期不会进行维护,仅限于大家学习交流,请勿恶意竞争,谢谢!
from selenium import webdriver
import time
from selenium.webdriver.support.ui import Select
global driver
if __name__ == '__main__':
#下面这行代码填入自己谷歌浏览器驱动的位置即可
driver_path=r'C:\Users\万萌\AppData\Local\Google\Chrome\Application\chromedriver.exe'
driver=webdriver.Chrome(executable_path=driver_path)
driver.get("http://jw1.njau.edu.cn/jsxsd/xsxk/xklc_list")
driver.implicitly_wait(5)
time.sleep(2)
studynum=driver.find_element_by_css_selector('#username')
#####################################################################
studynum.send_keys('---------')#这里填入自己的南农教务处网站的学号记得加引号
#######################################################################
studypassword=driver.find_element_by_css_selector('#password')
#################################################################
studypassword.send_keys('---------')#这里填入自己的南农教务处网站的登录密码
#################################################################
login=driver.find_element_by_css_selector('#login_submit')
login.click()
chooselesson=driver.find_element_by_css_selector('[href="/jsxsd/ggly/ysgg_query?Ves632DSdyV=NEW_XSD_PYGL"]')
chooselesson.click()
choosecase=driver.find_element_by_css_selector('[href="/jsxsd/xsxk/xklc_list"]')
choosecase.click()
driver.find_element_by_xpath("/html/body/div[4]/div[2]/table/tbody/tr[2]/td[4]/a").click()
#driver.switch_to_frame("/html/body/div[4]/div[2]/table/tbody/tr[2]/td[4]/a")
driver.switch_to.window(driver.window_handles[-1])
driver.find_element_by_css_selector('[href="/jsxsd/xsxkkc/comeInGgxxkxk"]').click()
driver.switch_to.frame("mainFrame")
Select(driver.find_element_by_css_selector('[name="szjylb"]')).select_by_value('14')
#driver.find_element_by_xpath("/html/body/div[2]/select[1]").click()
#time.sleep(3)
# s1 = Select(driver.find_element_by_css_selector('[id="szjylb"][name="szjylb"]'))
# s1.select_by_value("14")
driver.find_element_by_xpath("/html/body/div[2]/input[6]").click()
# txt=driver.find_element_by_xpath("/html/body/div[3]/div/table/tbody/tr[1]/td[9]")
# print(txt.text)
school0=driver.find_elements_by_css_selector('.odd > td:nth-child(8)')
school1=driver.find_elements_by_css_selector('.even > td:nth-child(8)')
amount0=driver.find_elements_by_css_selector('.odd > td:nth-child(9)')
amount1=driver.find_elements_by_css_selector('.even > td:nth-child(9)')
judge0=driver.find_elements_by_css_selector('.odd > td:nth-child(10)')
judge1=driver.find_elements_by_css_selector('.even > td:nth-child(10)')
enter0=driver.find_elements_by_css_selector('.odd > td:nth-child(12) a')
enter1=driver.find_elements_by_css_selector('.even > td:nth-child(12) a')
xuanke=0
driver.implicitly_wait(5)
三、运行效果
可以查看B站链接抢课神器_哔哩哔哩_bilibili
总结
有问题的小伙伴可以在评论区评论哦,原创不易,点个赞支持下