emmm,现在期末考试马上考完了,要查成绩,只能等完成了教学评估,但是教学评估又很麻烦。需要手动弄的话,更是麻烦,于是想着用python写个脚本弄算了。
思路有两个
1使用requests模块,一步步模拟,完成登陆,请求,填写评价。但是这样子很麻烦,首先在登陆界面,以及后续的,仔细抓包分析,都发现是异步请求,总的来说就是贼吉尔麻烦使用第二种
2 也就是我推荐用的,使用selenium。
我用的是火狐的selenium,不知道怎么配置selenium的自行百度~
from selenium.webdriver.support.ui import Select
from selenium import webdriver
import time
import random
zhanghao="********************" ###你的学号
mima="***************" ###你的密码
huoyu = webdriver.Firefox()
huoyu.get("http://bkjws.sdu.edu.cn/")
####第一步,登录
zhang=huoyu.find_element_by_name("j_username")
password=huoyu.find_element_by_name("j_password")
zhang.send_keys(zhanghao)
password.send_keys(mima)
buttοnclick=huoyu.find_element_by_id("loginButtonId")
buttonclick.click()
##点击进入评估
huoyu.implicitly_wait(2)
jiaoxue=huoyu.find_element_by_xpath("/html/body/div[3]/div[1]/ul/li[9]/a")
jiaoxue.click()
###等待
huoyu.implicitly_wait(2)
jinru=huoyu.find_element_by_xpath("/html/body/div[3]/div[1]/ul/li[9]/ul/li[1]/a")
jinru.click()
miaosu=["老师人很好","老师很负责","老师很可爱","老师很认真"]###你也可以自己改
lenmiaosu=len(miaosu)
#获取教学列表
liebiao=huoyu.find_elements_by_class_name("jrwjButton")
for i in range(0,len(liebiao)):
huoyu.implicitly_wait(4)
jiaoxue = huoyu.find_element_by_xpath("/html/body/div[3]/div[1]/ul/li[9]/a")
jiaoxue.click()
liebiaoo = huoyu.find_elements_by_class_name("jrwjButton")
huoyu.implicitly_wait(5)
try:
huoyu.implicitly_wait(2)
diyige=liebiaoo[i]
diyige.click()
huoyu.implicitly_wait(2)
xuanze=huoyu.find_elements_by_xpath("//input[@value='5.0']")
tuijian=huoyu.find_element_by_xpath("//input[@value='推荐']")####你可以改成 不推荐
kecheng=huoyu.find_element_by_xpath("//input[@value='课程过难']")####你也可以改改这里hhh
manyi=huoyu.find_element_by_xpath("//input[@id='zbda_18']")
for m in xuanze:
m.click()
tuijian.click()
manyi.click()
kecheng.click()
pingjia=huoyu.find_element_by_xpath("//textarea[@id='zbda_21']")
f=random.randint(0,lenmiaosu)
pingjia.send_keys(miaosu[f])
tijiao=huoyu.find_element_by_xpath("//*[@id='tjButtonId']")
tijiao.click()
huoyu.implicitly_wait(2)
queding=huoyu.find_element_by_xpath("/html/body/div[1]/div/table/tbody/tr[2]/td[2]/div/table/tbody/tr[3]/td/div/button[1]").click()
huoyu.implicitly_wait(1)
###刷新。进入下一次的填评价
huoyu.refresh()
jiaoxue = huoyu.find_element_by_xpath("/html/body/div[3]/div[1]/ul/li[9]/a")
jiaoxue.click()
###等待
huoyu.implicitly_wait(2)
jinru = huoyu.find_element_by_xpath("/html/body/div[3]/div[1]/ul/li[9]/ul/li[1]/a")
jinru.click()
except Exception:
print("失败",i)