private void StudyCourse(CourseDetailInfo curCourseDetail) { var playFrameUrl = "http://" + HttpUtility.HOST + curCourseDetail.Url; var pageHtmlStr = HttpUtility.HttpGet(playFrameUrl, Encoding.UTF8); var document = new HtmlParser().Parse(pageHtmlStr); var playFrameDom = document.QuerySelector("iframe[id=iframe]"); var playUrl = playFrameDom.Attributes["src"].Value; pageHtmlStr = HttpUtility.HttpGet(playUrl, Encoding.UTF8); Dictionary <string, string> parameters = new Dictionary <string, string>(); parameters.Add("businessId", "gp5"); parameters.Add("time", "24000"); var recordIdStartIndex = pageHtmlStr.IndexOf("attrset.recordId=\""); var recordId = pageHtmlStr.Substring(recordIdStartIndex + "attrset.recordId=\"".Length, 32); parameters.Add("recordId", recordId); var updateRedisMapIndex = pageHtmlStr.IndexOf("attrset.updateRedisMap=\""); var updateRedisMap = pageHtmlStr.Substring(updateRedisMapIndex + "attrset.updateRedisMap=\"".Length, 1); parameters.Add("updateRedisMap", updateRedisMap); var studyCodeIndex = pageHtmlStr.IndexOf("attrset.studyCode=\""); var studyCode = pageHtmlStr.Substring(studyCodeIndex + "attrset.studyCode=\"".Length, 32); parameters.Add("studyCode", studyCode); var sectionIdIndex = pageHtmlStr.IndexOf("attrset.sectionId=\""); var sectionId = pageHtmlStr.Substring(sectionIdIndex + "attrset.sectionId=\"".Length, 36); parameters.Add("sectionId", sectionId); var signIdIndex = pageHtmlStr.IndexOf("attrset.signId=\""); var signId = pageHtmlStr.Substring(signIdIndex + "attrset.signId=\"".Length); signIdIndex = signId.IndexOf("\";"); signId = signId.Substring(0, signIdIndex); parameters.Add("signId", signId); var takeRecordUrl = "http://videoadmin.chinahrt.com.cn/videoPlay/takeRecord"; var result = HttpUtility.HttpPost(takeRecordUrl, null, parameters); var curCourse = this._vm.CourseInfos.FirstOrDefault(x => x.Guid.Equals(curCourseDetail.ParentGuid)); LoadCourseDetailInfos(curCourse); parameters.Clear(); parameters.Add("recordId", recordId); parameters.Add("time", "100"); parameters.Add("studyCode", studyCode); parameters.Add("viewTime", "100"); var endPalyUrl = "http://videoadmin.chinahrt.com.cn/videoPlay/endPlay"; HttpUtility.HttpGet(endPalyUrl, null, parameters); }
private void LoadCourseDetailInfos(CourseInfo curCourse) { var detailListUrl = "http://" + HttpUtility.HOST + curCourse.DetailUrl; var pageHtmlStr = HttpUtility.HttpGet(detailListUrl, Encoding.UTF8); var document = new HtmlParser().Parse(pageHtmlStr); var courseDetailDoms = document.QuerySelectorAll("div.memu-in ul li"); this.Dispatcher.Invoke(new Action(() => { this._vm.CourseDetailInfos.Clear(); foreach (var item in courseDetailDoms) { CourseDetailInfo detailInfo = new CourseDetailInfo(); var aDom = item.QuerySelector("a"); detailInfo.Name = aDom.TextContent.Trim(); detailInfo.Url = aDom.Attributes["href"].Value; detailInfo.Guid = Guid.NewGuid().ToString(); detailInfo.ParentGuid = curCourse.Guid; detailInfo.Status = item.QuerySelector("span").TextContent.Trim();; this._vm.CourseDetailInfos.Add(detailInfo); } })); }
/// <summary> /// 获取课程详情 /// </summary> /// <param name="courseList"></param> private void GetDetail(List <Course> courseList) { int count = courseList.Count; //System.Threading.Tasks.Parallel.For(0, count, (i, state) => //{ // using (var wc = new WebClient()) // { // Console.WriteLine("\n" + courseList[i].name + "开始分析..."); // string jsonString = wc.DownloadString(string.Format(DetailInfoUrl, courseList[i]._id)); // CourseDetailInfo detail = JsonConvert.DeserializeObject<CourseDetailInfo>(jsonString); // if (detail != null && detail.treeData.Length > 0) // { // CategoryNameTarget = ""; // ScanChildren(detail.treeData[0]); // } // } // Console.WriteLine(courseList[i].name + "download complete..."); //}); foreach (var item in courseList) { using (var wc = new WebClient()) { Console.WriteLine("\n" + item.name + "开始分析..."); string jsonString = wc.DownloadString(string.Format(DetailInfoUrl, item._id)); CourseDetailInfo detail = JsonConvert.DeserializeObject <CourseDetailInfo>(jsonString); if (detail != null && detail.treeData.Length > 0) { ScanChildren(detail.treeData[0]); } } Console.WriteLine(item.name + "download complete..."); } }