public List<CourseRemainCapacity> GetCourseRemainCapacity(Semester semester) { string html; var rand = new Random(5); var courseList = new List<CourseRemainCapacity>(); { var url = "http://zhjwxk.cic.tsinghua.edu.cn/xkBks.vxkBksXkbBs.do?m=xkqkSearch&p_xnxq=" + semester.Id; var request = _httpHelper.CreateHTTPGetRequest(url, true); html = HTTPHelper.GetResponseString(request); } courseList.AddRange(ParseCourseRemainCapacity(html)); var token = getToken(html); var match = Regex.Match(html, "第 1 页 / 共 (\\d+) 页"); int pageCount = int.Parse(match.Groups[1].ToString()); OutputLog(string.Format("共计 {0} 页", pageCount)); OutputLog("成功抓取第 1 页"); for (int i = 2; i <= pageCount; i++) { System.Threading.Thread.Sleep(500 + rand.Next(0, 1000)); var url = "http://zhjwxk.cic.tsinghua.edu.cn/xkBks.vxkBksJxjhBs.do"; var postStr = string.Format("m=kylSearch&page={2}&token={0}&p_sort.p1=&p_sort.p2=&p_sort.asc1=&p_sort.asc2=&p_xnxq={1}&pathContent=课余量查询&p_kch=&p_kxh=&p_kcm=&p_skxq=&p_skjc=&goPageNumber={3}", token, semester.Id, i, i - 1); var request = _httpHelper.CreateHTTPPOSTRequest(url, postStr, true); html = HTTPHelper.GetResponseString(request); OutputLog(string.Format("成功抓取第 {0} 页", i)); courseList.AddRange(ParseCourseRemainCapacity(html)); } return courseList; }
public List<CourseRawData> GetCourses(Semester semester) { string html; var rand = new Random(5); var courseList = new List<CourseRawData>(); { var url = "http://zhjwxk.cic.tsinghua.edu.cn/xkYjs.vxkYjsJxjhBs.do?m=kkxxSearch&p_xnxq=" + semester.Id; var request = _httpHelper.CreateHTTPGetRequest(url, true); html = HTTPHelper.GetResponseString(request); } courseList.AddRange(ParseCourse(html)); var token = getToken(html); var match = Regex.Match(html, "第 1 页 / 共 (\\d+) 页"); var pageCount = int.Parse(match.Groups[1].ToString()); OutputLog(string.Format("共计 {0} 页", pageCount)); OutputLog("成功抓取第 1 页"); for(int i = 2 ; i <= pageCount ;i++) { System.Threading.Thread.Sleep(500 + rand.Next(0, 1000)); var url = "http://zhjwxk.cic.tsinghua.edu.cn/xkYjs.vxkYjsJxjhBs.do"; var postStr = string.Format("m=kkxxSearch&page={2}&token={0}&p_sort.p1=&p_sort.p2=&p_sort.asc1=true&p_sort.asc2=true&p_xnxq={1}&pathContent=&showtitle=&p_kkdwnm=&p_kch=&p_kcm=&p_zjjsxm=&p_kcflm=&p_skxq=&p_skjc=&p_xkwzsm=&p_kctsm=&p_kctsm_new_value=false&p_ssnj=&p_rxklxm=&goPageNumber={3}", token, semester.Id, i, i - 1); var request = _httpHelper.CreateHTTPPOSTRequest(url, postStr, true); html = HTTPHelper.GetResponseString(request); OutputLog(string.Format("成功抓取第 {0} 页", i)); courseList.AddRange(ParseCourse(html)); } return courseList; }