/// <summary> /// 竞彩篮球赛果开奖 /// </summary> /// <returns></returns> public List <jclq_result> GetJclq() { string date = DateTime.Now.AddDays(-2).ToString("yyyy-MM-dd"); //竞彩篮球单关数据 var tableNode = CommonHelper.LoadGziphtml("http://zx.500.com/jclq/kaijiang.php??playid=0&ggid=0&d=" + date).DocumentNode.SelectSingleNode("//table[@class='ld_table']"); //竞彩篮球过关数据 var GgtableNode = CommonHelper.LoadGziphtml("http://zx.500.com/jclq/kaijiang.php??playid=0&ggid=1&d=" + date).DocumentNode.SelectSingleNode("//table[@class='ld_table']").SelectNodes("tr").Skip(1); //获取平均欧赔 var trNodes = CommonHelper.LoadGziphtml("http://zx.500.com/jclq/kaijiang.php?playid=1&d=" + date).DocumentNode.SelectSingleNode("//table[@class='ld_table']").SelectNodes("tr").Skip(1); var trNode = tableNode.SelectNodes("tr").Skip(1); int OpIndex = 1; List <jclq_result> jclq_results = new List <jclq_result>(); jclq_result jclq_result; //赛果开奖情况 foreach (var item in trNode) { OpIndex++; jclq_result = new jclq_result(); //单关数据 int tdIndex = 1; foreach (var item2 in item.SelectNodes("td")) { string strText = Regex.Replace(item2.InnerHtml, "<[^>]+>", "");//不包含>的任意字符,字符个数不限,但至少一个字符 if (strText == " " || strText == "VS" || strText == "" || strText == "--") { continue; } switch (tdIndex) { case 1: jclq_result.MatchNumber = strText; break; case 2: jclq_result.League_Color = item2.Attributes["style"].Value.Replace("background-color:", ""); jclq_result.LeagueName = strText; break; case 3: jclq_result.MatchDate = strText; break; case 4: jclq_result.GuestTeam = strText; break; case 5: jclq_result.HomeTeam = strText; break; case 6: jclq_result.FullScore = strText; break; case 7: jclq_result.SF_Result = strText; break; case 8: jclq_result.LetBall = strText; break; case 9: jclq_result.RFSF_Result = strText; break; case 10: jclq_result.SFC_Result = strText; break; case 11: jclq_result.YSZF = strText; break; case 12: jclq_result.DXF_Result = strText; break; } tdIndex = tdIndex + 1; } //获取篮球平均欧赔 int indexop = 1; foreach (var item3 in trNodes) { indexop++; if (indexop != OpIndex) { continue; } for (int i = 0; i < item3.SelectNodes("td").Count(); i++) { if (i > 9 && i < 12) { jclq_result.AvgEu_SP += item3.SelectNodes("td")[i].InnerHtml + ","; } if (i >= 12) { break; } } break; } //过关数据 int Ggindex = 1; foreach (var item4 in GgtableNode) { Ggindex++; if (Ggindex != OpIndex) { continue; } for (int i = 0; i < item4.SelectNodes("td").Count(); i++) { if (i == 7) { jclq_result.GG_SF_Result = item4.SelectNodes("td")[i].InnerHtml; } if (i == 10) { jclq_result.GG_RFSF_Result = item4.SelectNodes("td")[i].InnerHtml; } if (i == 12) { jclq_result.GG_SFC_Result = item4.SelectNodes("td")[i].InnerHtml; } if (i == 12) { jclq_result.GG_DXF_Result = item4.SelectNodes("td")[i].InnerHtml; } } break; } jclq_result.AvgEu_SP = jclq_result.AvgEu_SP.Substring(0, jclq_result.AvgEu_SP.Length - 1); jclq_results.Add(jclq_result); } return(jclq_results); }
public int AddCaiKeJCLQ(Caike_Body caike_Body, string matchDateCode, DateTime dateTime) { try { int m = 0; caike_Body.records.ForEach((record) => { jclq_result _Result = new jclq_result { MatchId = matchDateCode + record.matchNo, MatchDate = "", MatchNumber = record.matchNo, HomeTeam = record.homeTeam, GuestTeam = record.guestTeam, LeagueName = record.leagueName, FullScore = record.scoreText.Substring(record.scoreText.IndexOf(">") + 1, record.scoreText.Substring(record.scoreText.IndexOf(">") + 1).IndexOf("<")).Replace("-", ":"), AvgEu_SP = "123456", JCDate = dateTime.ToString("yyyy-MM-dd"), CreateTime = DateTime.Now, Url_Type = (int)CollectionUrlEnum.url_caike }; int i = 0; record.details.ForEach((detail) => { if (detail.name != "" && detail.name != "-" && detail.value != "" && detail.value != "-") { if (i == 0) { _Result.SF_Result = detail.name; i++; } else if (i == 1) { _Result.RFSF_Result = detail.name.Substring(0, detail.name.IndexOf("(") - 1); _Result.LetBall = detail.name.Substring(detail.name.IndexOf("(") + 1, detail.name.IndexOf(")") - detail.name.IndexOf("(") - 1); i++; } else if (i == 2) { var SFC = detail.name.Replace("胜", "").Replace("负", ""); _Result.SFC_Result = _Result.RFSF_Result + SFC; _Result.GG_SFC_Result = _Result.RFSF_Result + SFC; _Result.GG_RFSF_Result = "让分" + _Result.RFSF_Result; i++; } else if (i == 3) { _Result.YSZF = detail.name.Substring(detail.name.IndexOf("(") + 1, detail.name.IndexOf(")") - detail.name.IndexOf("(") - 1); _Result.DXF_Result = detail.name.Split("(")[0]; _Result.GG_DXF_Result = detail.name.Split("(")[0] + "分"; i++; } } }); var Model = db.Queryable <jclq_result>().Where(x => x.MatchId == _Result.MatchId).First(); if (Model == null) { db.Insertable(_Result).ExecuteCommand(); m++; } }); return(m); } catch (Exception ex) { throw new Exception(ex.Message); } }
/// <summary> /// 竞彩篮球 /// </summary> private void GetJCLQ() { try { var JCDate = _SportService.GetJCLQ_JCDate(); DateTime olddate = Convert.ToDateTime(JCDate) == null || String.IsNullOrEmpty(JCDate) == true?DateTime.Now.AddMonths(-1) : Convert.ToDateTime(JCDate).AddDays(-1); DateTime date = DateTime.Now; int ts = Convert.ToInt32(Math.Ceiling((Convert.ToDateTime(date) - olddate).TotalDays)); for (int h = 0; h <= ts; h++) { try { //竞彩篮球单关数据 var tableNode = CommonHelper.LoadGziphtml("http://zx.500.com/jclq/kaijiang.php?playid=0&ggid=0&d=" + olddate.AddDays(h).ToString("yyyy-MM-dd"), CollectionUrlEnum.url_500zx).DocumentNode.SelectSingleNode("//table[@class='ld_table']"); if (tableNode == null) { Console.WriteLine($"奖期{olddate.AddDays(h)}竞彩篮球获取根节点失败"); continue; } //竞彩篮球过关数据 var GgtableNodes = CommonHelper.LoadGziphtml("http://zx.500.com/jclq/kaijiang.php?playid=0&ggid=1&d=" + olddate.AddDays(h).ToString("yyyy-MM-dd"), CollectionUrlEnum.url_500zx).DocumentNode.SelectSingleNode("//table[@class='ld_table']"); if (GgtableNodes == null) { Console.WriteLine($"奖期{olddate.AddDays(h)}竞彩篮球获取过关数据失败"); continue; } var GgtableNode = GgtableNodes.SelectNodes("tr").Skip(1); //获取平均欧赔 var trNodess = CommonHelper.LoadGziphtml("http://zx.500.com/jclq/kaijiang.php?playid=1&d=" + olddate.AddDays(h).ToString("yyyy-MM-dd"), CollectionUrlEnum.url_500zx).DocumentNode.SelectSingleNode("//table[@class='ld_table']"); if (trNodess == null) { Console.WriteLine($"奖期{olddate.AddDays(h)}竞彩篮球获取平均欧赔失败"); continue; } var trNodes = trNodess.SelectNodes("tr").Skip(1); var trNode = tableNode.SelectNodes("tr").Skip(1); int OpIndex = 1; List <jclq_result> jclq_results = new List <jclq_result>(); jclq_result jclq_result; //赛果开奖情况 foreach (var item in trNode) { OpIndex++; jclq_result = new jclq_result(); jclq_result.MatchId = olddate.AddDays(h).ToString("yyyy-MM-dd").Replace("-", ""); jclq_result.JCDate = olddate.AddDays(h).ToString("yyyy-MM-dd"); //单关数据 int tdIndex = 1; foreach (var item2 in item.SelectNodes("td")) { string strText = Regex.Replace(item2.InnerHtml, "<[^>]+>", "");//不包含>的任意字符,字符个数不限,但至少一个字符 if (strText == " " || strText == "VS" || strText == "" || strText == "--") { continue; } switch (tdIndex) { case 1: jclq_result.MatchNumber = strText; break; case 2: jclq_result.League_Color = item2.Attributes["style"].Value.Replace("background-color:", "").Replace(";", ""); jclq_result.LeagueName = strText; break; case 3: jclq_result.MatchDate = strText; break; case 4: jclq_result.GuestTeam = strText; break; case 5: jclq_result.HomeTeam = strText; break; case 6: jclq_result.FullScore = strText; break; case 7: jclq_result.SF_Result = strText; break; case 8: jclq_result.LetBall = strText; break; case 9: jclq_result.RFSF_Result = strText; break; case 10: jclq_result.SFC_Result = strText; break; case 11: jclq_result.YSZF = strText; break; case 12: jclq_result.DXF_Result = strText; break; } tdIndex = tdIndex + 1; } //获取篮球平均欧赔 int indexop = 1; foreach (var item3 in trNodes) { indexop++; if (indexop != OpIndex) { continue; } for (int i = 0; i < item3.SelectNodes("td").Count(); i++) { if (i > 9 && i < 12) { jclq_result.AvgEu_SP += item3.SelectNodes("td")[i].InnerHtml + ","; } //if (i >= 12) //{ //} } } //过关数据 int Ggindex = 1; foreach (var item4 in GgtableNode) { Ggindex++; if (Ggindex != OpIndex) { continue; } for (int i = 0; i < item4.SelectNodes("td").Count(); i++) { if (i == 7) { jclq_result.GG_SF_Result = item4.SelectNodes("td")[i].InnerHtml; } if (i == 10) { jclq_result.GG_RFSF_Result = item4.SelectNodes("td")[i].InnerHtml; } if (i == 12) { jclq_result.GG_SFC_Result = item4.SelectNodes("td")[i].InnerHtml; } if (i == 15) { jclq_result.GG_DXF_Result = item4.SelectNodes("td")[i].InnerHtml; } } } jclq_result.Url_Type = (int)CollectionUrlEnum.url_500zx; jclq_result.AvgEu_SP = jclq_result.AvgEu_SP.Substring(0, jclq_result.AvgEu_SP.Length - 1); jclq_results.Add(jclq_result); } _SportService.Add_JCLQ(jclq_results); Console.WriteLine("采集篮球" + olddate.AddDays(h).ToString("yyyy-MM-dd") + "采集完成,共" + jclq_results.Count + "条"); } catch (Exception ex) { Console.WriteLine("采集篮球出错:" + ex.Message); log.Error("采集篮球出错:" + ex.Message); } } } catch (Exception ex) { Console.WriteLine("采集篮球出错:" + ex.Message); log.Error(ex.Message); } }