100行代码教你教务系统自动抢课!

100行代码教你教务系统自动抢课!

帮助广大学生解决抢课问题!自动抢课!!

100行代码帮你实现抢课!

代码有不明白的 欢迎来微信公众号“他她自由行”找我,回复任何话都可以 我都会回你哒~

本项目使用了python中splinter的API接口用来操作页面交互,用了twilio用来给手机发送短信通知抢课成功。

欢迎大家来全球最大同性交友网站Github:https://github.com/xubin97

来fork我的菜鸡代码,希望你能来继续增加更多功能,我也会不定期更新功能!

其中splinter API文档链接:https://splinter.readthedocs.io/en/latest/mouse-interaction.html

加载各种包,例如splinter、time、twilio包等;

from selenium.webdriver.chrome.options import Options #初始化浏览器

from splinter.browser import Browser #加载splinter与页面交互

from browsermobproxy import Server #浏览器驱动

from time import sleep #时间模块

from twilio.rest import Client #向手机发送信息模块

访问一个页面时可能也会访问其他资源,例如js、css等,这时就要保证我们能获取所有的请求。

#获取所有网络请求

server=Server("D:/splinter/browsermob-proxy-2/browsermob-proxy-2.1.4/bin/browsermob-proxy")

server.start()

proxy=server.create_proxy()

初始化浏览器,使其能访问其他资源

chrome_options=Options()

chrome_options.add_argument('--proxy-server={host}:{port}'.format(host='localhost',port=proxy.port))

#disable-infobars

书写类,能完成登录、访问、筛选出要抢的课、循环点击选课、抢课成功能发送短信通知你等功能

class HuoChe(object):

"""docstring for Train"""

driver_name='Chrome'

executable_path='D:\爬虫实战\12306\chromedriver_win32'

#用户名 密码

username = u"your_username"

passwd = u"your_password"

"""网址"""

# 强智教务系统登录URL

select_url = "http://............"

# 强智选课页面URL

login_url = "http://............."

def __init__(self):

print("Welcome To Use The Tool")

#登录函数

def login(self):

proxy.new_har()

self.driver.visit(self.login_url)

#填充密码

self.driver.fill("userAccount",self.username)

#sleep(1)

self.driver.fill("userPassword",self.passwd)

print("等待验证码,自行输入....")

while True:

if self.driver.url != self.initmy_url:

sleep(1)

else :

break

#抢课成功,利用twilio发送短信的函数

def send_message():

account_sid="your_sid"

auth_token="your_auth_totken"

client=Client(account_sid,auth_token)

client.messages.create(

body=u" 抢课成功,请登录查看 ",to="+86你注册twilio时手机号",from_="+twilio分配给你的手机号")

#登录进入,开始抢课

def start(self):

#选择模拟的浏览器类型

self.driver = Browser(driver_name='chrome')

self.driver.driver.set_window_size(1400,1000)

self.login()

self.driver.visit(self.select_url)

#选择你想抢课的种类,名字或教学方式

self.driver.find_by_text(u'公选课选课').click()

class_name=u"网络授课"

#利用iframe表格找到想选的课的选课按钮,然后点击

#循环点击所有要抢的课的选课id,当抢课成功发送短信通知

if self.driver.find_by_id('mainFrame'):

with self.driver.get_iframe('mainFrame') as frame:

b=frame.find_by_name("skls")

b.fill(class_name)

frame.find_by_value(u"查询").click()

#要抢课的id列表

list=[......]

#循环抢课,提示抢课成功后发送手机短信通知

A=False

while A==False:

for i in range(len(list)):

frame.find_by_id(list[i]).click()

with frame.get_alert() as alert:

alert.accept()

if alert.text=="选课失败:此课堂选课人数已满!":

alert.accept()

continue

elif alert.text=="选课成功":

alert.accept()

A=True

print('抢课成功')

#调用发送短信函数

self.send_message()

break

else:

alert.accept()

continue

if __name__=="__main__":

train = HuoChe()

train.start()

对啦~

代码有不明白的 欢迎来微信公众号“他她自由行”找我,回复任何话都可以 我都会回你哒~

你可能也喜欢

王者荣耀抢buff的学问 时机、在哪里与策略
365bet开户娱乐

王者荣耀抢buff的学问 时机、在哪里与策略

📅 01-05 👀 1281
“导演高手”张静初的上位史,以及她背后的4位导演
老虎斑贵还是石斑鱼贵?
365bet开户娱乐

老虎斑贵还是石斑鱼贵?

📅 11-14 👀 8852
安图恩门票在哪里换
365bet开户娱乐

安图恩门票在哪里换

📅 11-22 👀 5122
云效账号的登录登出与密码修改
365bet开户娱乐

云效账号的登录登出与密码修改

📅 02-23 👀 4573
手把手教你打开微信新功能→
365bet开户娱乐

手把手教你打开微信新功能→

📅 09-25 👀 7684
qq聊天怎么设置 QQ聊天界面如何调整成左右对话框
2025吸尘哪个品牌好吸力大?十大名牌吸尘器榜单全方位详细分析
手机贴膜机
365bet开户娱乐

手机贴膜机

📅 08-16 👀 6083