@hx
2018-04-25T16:42:38.000000Z
字数 1496
阅读 1854
Python
import requestsfrom bs4 import BeautifulSoupif __name__ == "__main__":def getData(myInfo):# 首页homeUrl = "http://uia.whxy.edu.cn/cas/login?service=http%3A%2F%2Fportal.whxy.edu.cn%2Fc%2Fportal%2Flogin"# 登录loginUrl = homeUrl + "%3Fredirect%3D%252Fweb%252Fguest%252Findex%26p_l_id%3D10213"# 教务登录jwLogin = "http://59.172.226.5/eams/sso/login.action"# 教务主页jwHome = "http://59.172.226.5/eams/home.action"# 学籍信息xj = "http://59.172.226.5/eams/stdDetail.action"# 课表kb = "http://59.172.226.5/eams/courseTableForStd.action"kb2 = "http://59.172.226.5/eams/courseTableForStd!courseTable.action"s = requests.Session()r = s.get(homeUrl)r.encoding = r.apparent_encodingsoup = BeautifulSoup(r.text, "html.parser")lt = soup.find(attrs={"name": "lt"})["value"]# 获取 ltmyInfo["lt"] = ltmyInfo["_eventId"] = "submit"r = s.post(loginUrl, data=myInfo)soup = BeautifulSoup(r.text, "html.parser")# 一卡通余额balance = soup.select_one("#balance").stringr = s.get(jwLogin)r = s.get(jwHome)r = s.get(xj)soup = BeautifulSoup(r.text, "html.parser")data_list = {"一卡通余额": balance}for idx, tr in enumerate(soup.find_all('tr')):for tdx, td in enumerate(tr.find_all("td")):if len(td.contents) != 0:if idx == 1 and tdx == 1:data_list["学号"] = td.contents[0]elif idx == 1 and tdx == 3:data_list["姓名"] = td.contents[0]elif idx == 2 and tdx == 3:data_list["性别"] = td.contents[0]elif idx == 5 and tdx == 3:data_list["学院"] = td.contents[0]elif idx == 6 and tdx == 1:data_list["专业"] = td.contents[0]elif idx == 11 and tdx == 3:data_list["班级"] = td.contents[0]print(data_list)info = {"username": "2015****", "password": "Whxy27****"}getData(info)