//---------------------------------------------------------------------------- private int SortRedRecommendList(NextRedBallData data1, NextRedBallData data2) { if (int.Parse(data1.redballNum) < int.Parse(data2.redballNum)) { return(-1); } else { return(1); } }
//---------------------------------------------------------------------------- private void ParseAnalysisRedData(string html) { HtmlDocument m_html = new HtmlDocument(); m_html.LoadHtml(html); HtmlNode htmlNode = m_html.DocumentNode; //取出近20期红球杀号数据总html HtmlNode OneHundreDataTable = htmlNode.SelectSingleNode("//*[@id='showTable']/table"); Debug.Log("OneHundreDataNode: " + OneHundreDataTable.OuterHtml); var tr = OneHundreDataTable.SelectNodes("./tr"); drawData.m_analysisRedData.curforeRedBallList.Clear(); drawData.m_analysisRedData.nextforeRedBallList.Clear(); drawData.prizeNumberDataList.Clear(); for (int i = 0; i <= 19; i++) { var forecastTable = tr[i]; var td = forecastTable.SelectNodes("./td"); var data = new PrizeNumberData(); data.numperiods = int.Parse(td[0].InnerText); ParsePrizeInnerText(td[1].InnerText, data); drawData.prizeNumberDataList.Add(data); } drawData.prizeNumberDataList.Sort(PrizeNumberDataSort); for (int i = 19; i <= 20; i++) { var forecastTable = tr[i]; var redNumList = new List <string>(); var curredNumList = new List <string>(); var td = forecastTable.SelectNodes("./td"); switch (i) { case 19: drawData.m_analysisRedData.curforenumperiods = td[0].InnerText; drawData.m_analysisRedData.curforeHitRate = td[33].InnerText; Debug.Log("当前红球命中个数: " + drawData.m_analysisRedData.curforeHitRate); break; case 20: drawData.m_analysisRedData.nextforenumperiods = td[0].InnerText; break; default: break; } for (int j = 3; j <= 30; j += 3) { redNumList.Add(td[j].InnerText); if (i == 19) { curredNumList.Add(td[j + 1].InnerHtml.Split('\"')[3]); } } for (int j = 0; j < redNumList.Count; j++) { var redballdata = new NextRedBallData(); var currentredballdata = new CurrentRedBallData(); switch (i) { case 19: currentredballdata.redballNum = redNumList[j]; currentredballdata.isRightOrNot = curredNumList[j]; drawData.m_analysisRedData.curforeRedBallList.Add(currentredballdata); Debug.Log("当期红球杀号 : " + drawData.m_analysisRedData.curforeRedBallList[j].redballNum); break; case 20: redballdata.redballNum = redNumList[j]; drawData.m_analysisRedData.nextforeRedBallList.Add(redballdata); Debug.Log("下期红球杀号 : " + drawData.m_analysisRedData.nextforeRedBallList[j].redballNum); break; default: break; } } } for (int i = 21; i <= 26; i++) { var dataTd = tr[i].SelectNodes("./td"); var dataList = new List <string>(); for (var j = 2; j <= 20; j += 2) { dataList.Add(dataTd[j].InnerText); } for (int j = 0; j < dataList.Count; j++) { switch (i) { case 21: drawData.m_analysisRedData.nextforeRedBallList[j].consecutiveErrorsNum = dataList[j]; Debug.Log("consecutiveErrorsNum : " + drawData.m_analysisRedData.nextforeRedBallList[j].consecutiveErrorsNum); break; case 22: drawData.m_analysisRedData.nextforeRedBallList[j].numberOfPairs = dataList[j]; Debug.Log("numberOfPairs : " + drawData.m_analysisRedData.nextforeRedBallList[j].numberOfPairs); break; case 23: drawData.m_analysisRedData.nextforeRedBallList[j].totalCorrectNum = dataList[j]; Debug.Log("totalCorrectNum : " + drawData.m_analysisRedData.nextforeRedBallList[j].totalCorrectNum); break; case 24: drawData.m_analysisRedData.nextforeRedBallList[j].accuracy = dataList[j]; Debug.Log("accuracy : " + drawData.m_analysisRedData.nextforeRedBallList[j].accuracy); break; case 25: drawData.m_analysisRedData.nextforeRedBallList[j].consecutiveErrorsMaxNum = dataList[j]; Debug.Log("consecutiveErrorsMaxNum : " + drawData.m_analysisRedData.nextforeRedBallList[j].consecutiveErrorsMaxNum); break; case 26: drawData.m_analysisRedData.nextforeRedBallList[j].maximumNumOfPairs = dataList[j]; Debug.Log("maximumNumOfPairs : " + drawData.m_analysisRedData.nextforeRedBallList[j].maximumNumOfPairs); break; default: break; } } } }