爬了这么久的教务处,终于还是绕过了千山万水登进来了。
这段时间准备期末考,忙,好久不更博。
年终总结也没有写。
是时候开更啦!
XDJiao_Wu_Chu.py说明文档
1、init():两个URL分别为用抓包软件获取的实际登录网址和实际提交账号密码的网址。
2、login():用抓包软件获取的用Chrome浏览器登录教务处的head报文,login()为模拟登录教务处的所需信息。
3、Print():将登录进去的课程表HTML网页打印出来。
4、使用前请确认安装BeautifulSoup模块。请修改里面的学号id和password再进行运行。
5、后续将从HTML网页中提取出有用的信息。
6、运行login()后便可以登录进教务处系统,修改Print()中的URL即可完成不同信息的获取,比如换成成绩网页的URL、教务通知的URL等等。
#Python35 爬虫 西电 研究生教务处 课表 #肖洒 2017/1/19 V1.0 #请替换id和password再进行使用 # -*-encoding:utf-8-*- # coding=utf-8 __author__ = 'ysc' import requests import csv from bs4 import BeautifulSoup class ScrapeXd: def __init__(self, auth_url=None, log_url=None): if not auth_url: self.auth_url = "http://ids.xidian.edu.cn/authserver/login?service=http%3A%2F%2Fjwxt.xidian.edu.cn%2Fcaslogin.jsp" self.log_url = "http://jwxt.xidian.edu.cn/caslogin.jsp" else: self.auth_url = auth_url self.log_url = log_url self.session = requests.Session() def login(self, id='XXXXXXXXXX', password='XXXXXX'): r = self.session.get(self.auth_url) data = r.text bsObj = BeautifulSoup(data, "html.parser") lt_value = bsObj.find(attrs={"name": "lt"})['value'] exe_value = bsObj.find(attrs={"name": "execution"})['value'] params = {'username': id, 'password': password, "submit": "", "lt": lt_value, "execution": exe_value, "_eventId": "submit", "rmShown": '1'} headers = {'User-Agent': "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0", 'Accept': "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "Accept-Language": "zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3", "Accept-Encoding": "gzip, deflate", "Referer": "http://ids.xidian.edu.cn/authserver/login?service=http%3A%2F%2Fjwxt.xidian.edu.cn%2Fcaslogin.jsp", "Content-Type": "application/x-www-form-urlencoded"} s = self.session.post(self.auth_url, data=params, headers=headers) s = self.session.get(self.log_url) def Print(self): grade_page = self.session.get("http://yjsxt.xidian.edu.cn/eduadmin/findCaresultByStudentAction.do") bsObj2 = BeautifulSoup(grade_page.text, "html.parser") print(bsObj2) if __name__ == '__main__': # 初始化爬虫对象 sx = ScrapeXd() # 登录(在此处传入正确的个人学号与密码信息) sx.login(id='XXXXXXXXXX', password='XXXXXX') sx.Print()