/// <summary> /// 从主站抓取开奖数据 昨天/今天 /// </summary> /// <param name="IsToday"></param> /// <returns></returns> private List <XinJiangSSCEntity> GetDocByMainUrl(bool IsToday = true) { var list = new List <XinJiangSSCEntity>(); try { var time = DateTime.Now; var arg = new OpenCaiApiArg { code = EnumHelper.GetLotteryCode(SCCLottery.XinJiangSSC), date = time.ToString("yyyy-MM-dd") }; if (!IsToday) { arg.date = time.AddDays(-1).ToString("yyyy-MM-dd"); } var data = OpenCaiApiServices.GetOpenCaiApiData(arg); if (data == null) { return(list); } if (data.data != null) { if (data.data.Count == 0) { return(list); } for (var i = 0; i < data.data.Count; i++) { var qi = data.data[i].GetTermStr(); var qihao = qi.Length == 8 ? qi : qi.Remove(qi.Length - 3, 1); var tmp = new XinJiangSSCEntity { Id = int.Parse(qihao), OpenCode = data.data[i].GetOpenCodeStr(), OpenTime = DateTime.Parse(data.data[i].opentime) }; list.Add(tmp); } var checkDataHelper = new CheckDataHelper(); var dbdata = services.GetListIn(currentLottery, IsToday) .ToDictionary(w => w.Term.ToString(), w => w.GetCodeStr()); checkDataHelper.CheckData(dbdata, list.ToDictionary(w => w.Id.ToString(), w => w.OpenCode), Config.Area, currentLottery); } } catch (Exception ee) { log.Error(GetType(), string.Format("【{0}】通过站点抓取开奖列表时发生错误,错误信息【{1}】", Config.Area + currentLottery, ee.Message)); } return(list); }
/// <summary> /// 抓取主站开奖数据 /// </summary> /// <param name="postdata">请求数据</param> /// <returns></returns> private Dictionary <string, string> GetOpenListFromBackUrl(string postdata, bool IsToday = true) { var result = new Dictionary <string, string>(); try { var HtmlResource = string.Empty; if (string.IsNullOrWhiteSpace(postdata)) { HtmlResource = NetHelper.GetUrlResponse(Config.BackUrl); } else { HtmlResource = NetHelper.GetUrlResponse(Config.BackUrl, "POST", postdata); } if (HtmlResource == null) { return(result); } var doc = new HtmlDocument(); doc.LoadHtml(HtmlResource); var tables = doc.DocumentNode.SelectNodes("//table"); if (tables.Count < 12) { return(result); } var trs = tables[11].ChildNodes.Where(node => node.Name == "tr").ToList(); var matchQiHao = string.Empty; var matchKJHaoMa = string.Empty; List <HtmlNode> tds = null; for (var i = 1; i < trs.Count; i++) //第一行是表头 { var trstyle = trs[i].Attributes["style"]; if (trstyle != null && trstyle.Value == "display:none") { continue; } tds = trs[i].ChildNodes.Where(node => node.Name == "td").ToList(); matchQiHao = tds[1].InnerText.Trim(); matchKJHaoMa = tds[2].InnerText.Trim(); result.Add(matchQiHao, CommonHelper.TRHandleCode(matchKJHaoMa)); } var checkDataHelper = new CheckDataHelper(); var dbdata = services.GetListIn(currentLottery, IsToday) .ToDictionary(w => w.Term.ToString(), w => w.GetCodeStr()); checkDataHelper.CheckData(dbdata, result, Config.Area, currentLottery); } catch (Exception ex) { log.Error(GetType(), string.Format("【{0}】通过主站点抓取开奖列表时发生错误,错误信息【{1}】", Config.Area + currentLottery, ex.Message)); } return(result); }
/// <summary> /// 通过备用站点抓取今日最新开奖数据 /// 只抓取第一页数据,数据完整性由主站点提供 /// </summary> /// <returns></returns> private Dictionary <string, string> GetTodayOpenListFromBackUrl() { var result = new Dictionary <string, string>(); try { var matchQiHao = string.Empty; var matchKJHaoMa = string.Empty; var requestUrl = string.Format(Config.BackUrl, 1) + "&moreList="; var HtmlResource = NetHelper.GetHeNan481UrlResponse(requestUrl); if (HtmlResource == null) { return(result); } var doc = new HtmlDocument(); doc.LoadHtml(HtmlResource); var table = doc.DocumentNode.SelectSingleNode("//table"); if (table == null) { return(result); } ; var trs = table.ChildNodes.Where(R => R.Name.ToLower() == "tr").ToList(); if (trs.Count < 3) { return(result); } for (var i = 2; i < trs.Count - 1; i++) //第一二行为表头,最后一行为页码 { var tds = trs[i].ChildNodes.Where(R => R.Name.ToLower() == "td").ToList(); if (tds.Count < 6) { continue; } matchQiHao = tds[1].InnerText.Replace("期", string.Empty).Trim(); matchKJHaoMa = string.Format("{0},{1},{2},{3}", tds[2].InnerText.Trim(), tds[3].InnerText.Trim(), tds[4].InnerText.Trim(), tds[5].InnerText.Trim()); if (!result.ContainsKey(matchQiHao)) { result.Add(matchQiHao, CommonHelper.TRHandleCode(matchKJHaoMa)); } } var checkDataHelper = new CheckDataHelper(); var dbdata = services.GetListIn(currentLottery, true) .ToDictionary(w => w.Term.ToString(), w => w.GetCodeStr()); checkDataHelper.CheckData(dbdata, result, Config.Area, currentLottery); } catch (Exception ex) { log.Error(GetType(), string.Format("【{0}】通过备用站点抓取今日最新开奖列表时发生错误,错误信息【{1}】", Config.Area + currentLottery, ex.Message)); } return(result); }
/// <summary> /// 获取备用站点开奖列表数据 /// </summary> /// <param name="backUrl">备用站点</param> /// <returns></returns> private List <OpenCode5DTModel> GetOpenListFromBackUrl() { var result = new List <OpenCode5DTModel>(); try { var htmlResource = NetHelper.GetUrlResponse(Config.BackUrl); if (htmlResource == null) { return(result); } var doc = new HtmlDocument(); doc.LoadHtml(htmlResource); var table = doc.DocumentNode.SelectSingleNode("//table"); if (table == null) { return(result); } var trs = table.ChildNodes.Where(node => node.Name == "tr").ToList(); trs.RemoveAll(w => w.GetAttributeValue("class", "") != ""); foreach (var item in trs) { var tds = item.ChildNodes.Where(w => w.Name == "td").ToList(); ; var qihao = tds[0].InnerText.Trim(); var kaijianghao = tds[1].InnerText.Trim(); var opentime = tds[9].InnerText.Trim(); var tmp = new OpenCode5DTModel { Term = long.Parse(qihao), OpenTime = DateTime.Parse(opentime) }; tmp.OpenCode1 = int.Parse(kaijianghao.Substring(0, 2)); tmp.OpenCode2 = int.Parse(kaijianghao.Substring(2, 2)); tmp.OpenCode3 = int.Parse(kaijianghao.Substring(4, 2)); tmp.OpenCode4 = int.Parse(kaijianghao.Substring(6, 2)); tmp.OpenCode5 = int.Parse(kaijianghao.Substring(8, 2)); OptimizeBackModel(ref tmp, item); result.Add(tmp); } var checkDataHelper = new CheckDataHelper(); var dbdata = services.GetListS <OpenCode5DTModel>(currentLottery) .ToDictionary(w => w.Term.ToString(), w => w.GetCodeStr()); checkDataHelper.CheckData(dbdata, result.ToDictionary(w => w.Term.ToString(), w => w.GetCodeStr()), Config.Area, currentLottery); result = result.OrderByDescending(S => S.Term).ToList(); } catch (Exception ex) { log.Error(GetType(), string.Format("【{0}】通过备用站点抓取开奖列表时发生错误,错误信息【{1}】", Config.Area + currentLottery, ex.Message)); } return(result); }
/// <summary> /// 从备用站抓取开奖数据 昨天/今天 /// </summary> /// <param name="IsToday"></param> /// <returns></returns> /// <summary> /// 从主站抓取开奖数据 昨天/今天 /// </summary> /// <param name="IsToday"></param> /// <returns></returns> private List <GuangXiK3Entity> GetDocByMainUrl(bool IsToday = true) { var list = new List <GuangXiK3Entity>(); try { var time = DateTime.Now; var arg = new OpenCaiApiArg { code = EnumHelper.GetLotteryCode(SCCLottery.GuangXiK3), // rows = int.Parse(GetPeriodsNumberToDay(time, IsToday)), date = time.ToString("yyyy-MM-dd") }; if (!IsToday) { arg.date = time.AddDays(-1).ToString("yyyy-MM-dd"); } var data = OpenCaiApiServices.GetOpenCaiApiData(arg); if (data == null) { return(list); } if (data.data != null) { if (data.data.Count == 0) { return(list); } for (var i = 0; i < data.data.Count; i++) { var tmp = new GuangXiK3Entity { QiHao = data.data[i].GetTermStr(), KaiJiangHao = data.data[i].GetOpenCodeStr(), OpenTime = DateTime.Parse(data.data[i].opentime) }; list.Add(tmp); } var checkDataHelper = new CheckDataHelper(); var dbdata = services.GetListIn(currentLottery, IsToday) .ToDictionary(w => w.Term.ToString(), w => w.GetCodeStr()); checkDataHelper.CheckData(dbdata, list.ToDictionary(w => w.QiHao.ToString(), w => w.KaiJiangHao), Config.Area, currentLottery); } } catch (Exception ee) { log.Error(GetType(), string.Format("【{0}】通过站点抓取开奖列表时发生错误,错误信息【{1}】", Config.Area + currentLottery, ee.Message)); } return(list); }
/// <summary> /// 抓取主站点开奖数据 /// 上海体彩网首页只有最新的11期 /// </summary> /// <param name="url">主站点</param> /// <returns></returns> private Dictionary <string, string> GetOpenListFromBackUrl(bool IsToday = true) { var result = new Dictionary <string, string>(); try { var HtmlResource = NetHelper.GetUrlResponse(Config.BackUrl); if (string.IsNullOrWhiteSpace(HtmlResource)) { log.Warn(GetType(), string.Format("【{0}】通过接口抓取开奖列表未获取到数据。", Config.Area + currentLottery)); return(result); } var doc = new HtmlDocument(); doc.LoadHtml(HtmlResource); var table = doc.DocumentNode.SelectSingleNode("//table"); if (table == null) { return(result); } var trs = table.ChildNodes.Where(R => R.Name.ToLower() == "tr").ToList(); if (trs.Count < 2) { return(result); } List <HtmlNode> tds = null; var matchQiHao = string.Empty; var matchKJHaoMa = string.Empty; for (var i = 1; i < trs.Count; i++) //第一行为表头 { tds = trs[i].ChildNodes.Where(R => R.Name.ToLower() == "td").ToList(); if (tds.Count < 3) { continue; } matchQiHao = tds[0].InnerText.Trim().Substring(2); matchKJHaoMa = tds[1].InnerText.Trim(); if (!result.ContainsKey(matchQiHao)) { result.Add(matchQiHao, CommonHelper.TRHandleCode(matchKJHaoMa)); } } var checkDataHelper = new CheckDataHelper(); var dbdata = services.GetListIn(currentLottery, IsToday) .ToDictionary(w => w.Term.ToString(), w => w.GetCodeStr()); checkDataHelper.CheckData(dbdata, result, Config.Area, currentLottery); } catch (Exception ex) { log.Error(GetType(), string.Format("【{0}】通过主站点抓取开奖列表时发生错误,错误信息【{1}】", Config.Area + currentLottery, ex.Message)); } return(result); }
/// <summary> /// 从主站抓取开奖数据 昨天/今天 /// </summary> /// <param name="IsToday"></param> /// <returns></returns> private Dictionary <string, string> GetDocByMainUrl(bool IsToday = true) { var result = new Dictionary <string, string>(); try { var time = DateTime.Now; var arg = new OpenCaiApiArg { code = EnumHelper.GetLotteryCode(SCCLottery.ShanDongKLPK3), // rows = int.Parse(GetPeriodsNumberToDay(time, IsToday)), date = time.ToString("yyyy-MM-dd") }; if (!IsToday) { arg.date = time.AddDays(-1).ToString("yyyy-MM-dd"); } var data = OpenCaiApiServices.GetOpenCaiApiData(arg); if (data == null) { return(result); } if (data.data != null) { if (data.data.Count == 0) { return(result); } for (var i = 0; i < data.data.Count; i++) { var code = data.data[i].GetOpenCodeStr().Split(','); for (var j = 0; j < code.Length; j++) { code[j] = CetapiTOdb(int.Parse(code[j])).ToString(); } result.Add(data.data[i].GetTermStr(), string.Join(",", code)); } var checkDataHelper = new CheckDataHelper(); var dbdata = services.GetListIn(currentLottery, IsToday) .ToDictionary(w => w.Term.ToString(), w => w.GetCodeStr()); checkDataHelper.CheckData(dbdata, result, Config.Area, currentLottery); } } catch (Exception ee) { log.Error(GetType(), string.Format("【{0}】通过站点抓取开奖列表时发生错误,错误信息【{1}】", Config.Area + currentLottery, ee.Message)); } return(result); }
/// <summary> /// 抓取备用站点今日最新开奖数据 /// </summary> /// <returns></returns> private Dictionary <string, string> GetTodayOpenListFromBackUrl() { var result = new Dictionary <string, string>(); try { var HtmlResource = NetHelper.GetUrlResponse(Config.BackUrl); if (HtmlResource == null) { return(result); } var doc = new HtmlDocument(); doc.LoadHtml(HtmlResource); var tables = doc.DocumentNode.SelectNodes("//table"); if (tables == null || tables.Count < 15) { return(result); } var trs = tables[14].ChildNodes.Where(node => node.Name == "tr").ToList(); var matchQiHao = string.Empty; var matchKJHaoMa = string.Empty; for (var i = 2; i < trs.Count; i++) //第一二行是表头 { var trstyle = trs[i].Attributes["style"]; if (trstyle != null && trstyle.Value == "display:none") { continue; } var tds = trs[i].ChildNodes.Where(node => node.Name == "td").ToList(); if (tds.Count <= 1) { continue; } matchQiHao = tds[0].InnerText.Trim(); matchKJHaoMa = string.Format("{0},{1},{2},{3},{4}", tds[1].InnerText.Trim(), tds[2].InnerText.Trim(), tds[3].InnerText.Trim(), tds[4].InnerText.Trim(), tds[5].InnerText.Trim()); result.Add(matchQiHao, CommonHelper.TRHandleCode(matchKJHaoMa)); } var checkDataHelper = new CheckDataHelper(); var dbdata = services.GetListIn(currentLottery, false) .ToDictionary(w => w.Term.ToString(), w => w.GetCodeStr()); checkDataHelper.CheckData(dbdata, result, Config.Area, currentLottery); } catch (Exception ex) { log.Error(GetType(), string.Format("【{0}】通过备用站点抓取今日最新开奖列表时发生错误,错误信息【{1}】", Config.Area + currentLottery, ex.Message)); } return(result); }
/// <summary> /// 从备用链接查询开奖号码 昨天/今天 /// </summary> /// <param name="IsToday"></param> /// <returns></returns> private List <GuiZhou11x5Entity> GetDocByBackUrl(bool IsToday = true) { var list = new List <GuiZhou11x5Entity>(); try { var date = CommonHelper.SCCSysDateTime.ToSCCDateTimeString3(); if (!IsToday) { date = CommonHelper.SCCSysDateTime.AddDays(-1).ToSCCDateTimeString3(); } var startTime = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1)); // 当地时区 var timeStamp1 = (long)(DateTime.Now - startTime).TotalSeconds; // 相差秒数 var timeStamp2 = timeStamp1 + new Random().Next(100, 1000); //http://www.17mcp.com/out/json/kjgaopinkuayu.do?mark=list&type=3&pubdate=2017-11-19&callbackparam=jsonp1511164496643&_=1511166091893 //string url = string.Format(@"{0}mark=list&type=3&pubdate={1}&callbackparam=jsonp{2}&_={3}",Config.MainUrl, date, timeStamp1, timeStamp2); var url = string.Format(@"{0}mark=list&type=3&pubdate={1}", Config.BackUrl, date); var HtmlResource = NetHelper.GetUrlResponse(url, "POST", "1"); HtmlResource = HtmlResource.Replace("null", ""); HtmlResource = HtmlResource.Replace("(", ""); HtmlResource = HtmlResource.Replace(")", ""); // 去掉不能用的部分 if (HtmlResource == null) { return(list); } var obj = HtmlResource.JsonToEntity <JArray>(); for (var i = 0; i < obj.First["kjgplist"].Count(); i++) { var tmp = new GuiZhou11x5Entity { Id = int.Parse(obj.First["kjgplist"][i]["qihao"].ToString()), OpenCode = CommonHelper.TRHandleCode(obj.First["kjgplist"][i]["haoma"].ToString()), OpenTime = GetOpenTimeByPeriodNum(int.Parse(obj.First["kjgplist"][i]["qihao"].ToString())) }; list.Add(tmp); } var checkDataHelper = new CheckDataHelper(); var dbdata = services.GetListIn(currentLottery, IsToday) .ToDictionary(w => w.Term.ToString(), w => w.GetCodeStr()); checkDataHelper.CheckData(dbdata, list.ToDictionary(w => w.Id.ToString(), w => w.OpenCode), Config.Area, currentLottery); } catch (Exception ee) { log.Error(GetType(), string.Format("【{0}】通过站点抓取开奖列表时发生错误,错误信息【{1}】", Config.Area + currentLottery, ee.Message)); } return(list); }
/// <summary> /// 通过主站点抓取昨日开奖列表 /// </summary> /// <param name="url">请求地址</param> /// <returns></returns> private Dictionary <string, string> GetOpenListFromBackUrl(string url, bool IsToday = true) { var result = new Dictionary <string, string>(); try { var HtmlResource = NetHelper.GetUrlResponse(url); if (HtmlResource == null) { return(result); } var doc = new HtmlDocument(); doc.LoadHtml(HtmlResource); var tbody = doc.GetElementbyId("chartsTbody"); if (tbody == null) { return(result); } var trs = tbody.ChildNodes.Where(node => node.Name == "tr").ToList(); var matchQiHao = string.Empty; var matchKJHaoMa = string.Empty; for (var i = 1; i < trs.Count - 1; i++) //第一行是隐藏行 { var trstyle = trs[i].Attributes["style"]; if (trstyle != null && trstyle.Value == "display:none") { continue; } var tds = trs[i].ChildNodes.Where(node => node.Name == "td").ToList(); if (tds.Count < 4) { continue; } matchQiHao = tds[0].InnerText.Trim(); matchKJHaoMa = string.Format("{0},{1},{2}", tds[1].InnerText.Trim(), tds[2].InnerText.Trim(), tds[3].InnerText.Trim()); result.Add(matchQiHao, CommonHelper.TRHandleCode(matchKJHaoMa)); } var checkDataHelper = new CheckDataHelper(); var dbdata = services.GetListIn(currentLottery, IsToday) .ToDictionary(w => w.Term.ToString(), w => w.GetCodeStr()); checkDataHelper.CheckData(dbdata, result, Config.Area, currentLottery); } catch (Exception ex) { log.Error(GetType(), string.Format("【{0}】通过主站点抓取开奖列表时发生错误,错误信息【{1}】", Config.Area + currentLottery, ex.Message)); } return(result); }
/// <summary> /// 抓取主站点开奖数据 /// </summary> /// <param name="url">主站点</param> /// <returns></returns> private Dictionary <string, string> GetOpenListFromBackUrl(string url, bool IsToday = true) { var result = new Dictionary <string, string>(); try { var HtmlResource = NetHelper.GetUrlResponse(url, Encoding.GetEncoding("gb2312")); if (HtmlResource == null) { return(result); } var doc = new XmlDocument(); doc.LoadXml(HtmlResource); var matchQiHao = string.Empty; var matchKJHaoMa = string.Empty; var records = doc.SelectNodes("//row"); if (records == null) { return(result); } foreach (XmlNode xmlnode in records) { if (xmlnode.Attributes["expect"] == null || string.IsNullOrWhiteSpace(xmlnode.Attributes["expect"].Value) || xmlnode.Attributes["opencode"] == null || string.IsNullOrWhiteSpace(xmlnode.Attributes["opencode"].Value)) { continue; } matchQiHao = xmlnode.Attributes["expect"].Value.Trim(); matchKJHaoMa = xmlnode.Attributes["opencode"].Value.Trim(); if (!result.ContainsKey(matchQiHao)) { result.Add(matchQiHao, CommonHelper.TRHandleCode(matchKJHaoMa)); } } var checkDataHelper = new CheckDataHelper(); var dbdata = services.GetListIn(currentLottery, IsToday) .ToDictionary(w => w.Term.ToString(), w => w.GetCodeStr()); checkDataHelper.CheckData(dbdata, result, Config.Area, currentLottery); } catch (Exception ex) { log.Error(GetType(), string.Format("【{0}】通过副站点抓取开奖列表时发生错误,错误信息【{1}】", Config.Area + currentLottery, ex.Message)); } return(result); }
/// <summary> /// 通过主站点抓取今日最新开奖数据 /// </summary> /// <returns></returns> private Dictionary <string, string> GetTodayOpenListFromBackUrl() { var result = new Dictionary <string, string>(); try { var HtmlResource = NetHelper.GetUrlResponse(Config.BackUrl); if (HtmlResource == null) { return(result); } var doc = new HtmlDocument(); doc.LoadHtml(HtmlResource); var divs = doc.DocumentNode.SelectNodes("//div").ToList(); var targetDiv = divs .Where(R => R.Attributes["class"] != null && R.Attributes["class"].Value == "lm2block1") .FirstOrDefault(); if (targetDiv == null) { return(result); } var childDivs = targetDiv.ChildNodes.Where(R => R.Name == "div").ToList(); if (childDivs.Count >= 4 && (childDivs.Count - 1) % 3 == 0) //第一个div为表头,后面每3个div一期开奖记录 { var matchQiHao = string.Empty; var matchKJHaoMa = string.Empty; for (var i = 0; i < childDivs.Count / 3; i++) { matchQiHao = childDivs[i * 3 + 1].InnerText.Replace("-", string.Empty).Substring(2); matchKJHaoMa = childDivs[i * 3 + 3].InnerText.Replace(" ", string.Empty).Insert(2, ",") .Insert(1, ","); if (!result.ContainsKey(matchQiHao)) { result.Add(matchQiHao, CommonHelper.TRHandleCode(matchKJHaoMa)); } } } var checkDataHelper = new CheckDataHelper(); var dbdata = services.GetListIn(currentLottery, true) .ToDictionary(w => w.Term.ToString(), w => w.GetCodeStr()); checkDataHelper.CheckData(dbdata, result, Config.Area, currentLottery); } catch (Exception ex) { log.Error(GetType(), string.Format("【{0}】通过主站点抓取今日最新开奖列表时发生错误,错误信息【{1}】", Config.Area + currentLottery, ex.Message)); } return(result); }
/// <summary> /// 从主站抓取开奖数据 昨天/今天 /// </summary> /// <param name="IsToday"></param> /// <returns></returns> private Dictionary <string, string> GetDocByMainUrl(bool IsToday = true) { var result = new Dictionary <string, string>(); try { var time = DateTime.Now; var arg = new OpenCaiApiArg { code = EnumHelper.GetLotteryCode(SCCLottery.LiaoNingKL12), date = time.ToString("yyyy-MM-dd") }; if (!IsToday) { arg.date = time.AddDays(-1).ToString("yyyy-MM-dd"); } var data = OpenCaiApiServices.GetOpenCaiApiData(arg); if (data == null) { return(result); } if (data.data != null) { if (data.data.Count == 0) { return(result); } for (var i = 0; i < data.data.Count; i++) { var qi = data.data[i].GetTermStr(); var qihao = qi; result.Add(qihao, data.data[i].GetOpenCodeStr()); } var checkDataHelper = new CheckDataHelper(); var dbdata = services.GetListIn(currentLottery, IsToday) .ToDictionary(w => w.Term.ToString(), w => w.GetCodeStr()); checkDataHelper.CheckData(dbdata, result, Config.Area, currentLottery); // CheckData(dbdata, result); } } catch (Exception ee) { log.Error(GetType(), string.Format("【{0}】通过站点抓取开奖列表时发生错误,错误信息【{1}】", Config.Area + currentLottery, ee.Message)); } return(result); }
/// <summary> /// 抓取站点开奖数据 /// </summary> /// <param name="url">备用站点</param> /// <returns></returns> private List<ShanXiTaiYuanYTDJJobEnitity> GetDocByBackUrl(bool IsToday = true) { var list = new List<ShanXiTaiYuanYTDJJobEnitity>(); try { var day = DateTime.Now.ToString("yyyyMMdd"); if (!IsToday) day = DateTime.Now.AddDays(-1).ToString("yyyyMMdd"); var url = string.Format(Config.BackUrl, day); //" http://kaijiang.500.com/static/info/kaijiang/xml/bjk3/20171124.xml?_A=YLQMBVJT1511764350898"; //string url = @"http://www.bwlc.net/bulletin/prevqck3.html?page=3"; var HtmlResource = NetHelper.GetUrlResponse(url); if (HtmlResource == null) return list; var doc = new XmlDocument(); doc.LoadXml(HtmlResource); var records = doc.SelectNodes("//row"); if (records == null) return list; foreach (XmlNode xmlnode in records) { if (xmlnode.Attributes["expect"] == null || string.IsNullOrWhiteSpace(xmlnode.Attributes["expect"].Value) || xmlnode.Attributes["opencode"] == null || string.IsNullOrWhiteSpace(xmlnode.Attributes["opencode"].Value)) continue; var num = xmlnode.Attributes["expect"].Value; var opencode = xmlnode.Attributes["opencode"].Value; var opentime = xmlnode.Attributes["opentime"].Value; var tmp = new ShanXiTaiYuanYTDJJobEnitity { QiHao = num, KaiJiangHao = opencode, OpenTime = DateTime.Parse(opentime) }; list.Add(tmp); } var checkDataHelper = new CheckDataHelper(); var dbdata = services.GetListIn(currentLottery, IsToday) .ToDictionary(w => w.Term.ToString(), w => w.GetCodeStr()); checkDataHelper.CheckData(dbdata, list.ToDictionary(w => w.QiHao, w => w.KaiJiangHao), Config.Area, currentLottery); } catch (Exception ex) { log.Error(GetType(), string.Format("【{0}】通过副站点抓取开奖列表时发生错误,错误信息【{1}】", Config.Area + currentLottery, ex.Message)); } return list; }
/// <summary> /// 爬取主网站信息 /// </summary> /// <returns></returns> private List <OpenCode4DTModel> GetOpenListFromMainUrl(string mainUrl) { var result = new List <OpenCode4DTModel>(); try { var mainurl = mainUrl + "?type=4d&number=50"; var htmlResource = NetHelper.GetUrlResponse(mainurl); if (htmlResource == null) { return(result); } string term = string.Empty, openCodeString = string.Empty, optimizeUrl = string.Empty; OpenCode4DTModel model = null; var data = htmlResource.JsonToEntity <JObject>(); for (var i = 0; i < data["Models"].Count(); i++) { model = new OpenCode4DTModel(); term = data["Models"][i]["no"].ToString(); model.Term = long.Parse(term); model.OpenTime = DateTime.Now; openCodeString = data["Models"][i]["Number"].ToString(); var openCode = openCodeString.Split(','); model.OpenCode1 = Convert.ToInt32(openCode[0]); model.OpenCode2 = Convert.ToInt32(openCode[1]); model.OpenCode3 = Convert.ToInt32(openCode[2]); model.OpenCode4 = Convert.ToInt32(openCode[3]); model.Spare = string.Empty; model.DetailUrl = mainUrl; result.Add(model); } var checkDataHelper = new CheckDataHelper(); var dbdata = services.GetListS <OpenCode4DTModel>(currentLottery) .ToDictionary(w => w.Term.ToString(), w => w.GetCodeStr()); checkDataHelper.CheckData(dbdata, result.ToDictionary(w => w.Term.ToString(), w => w.GetCodeStr()), Config.Area, currentLottery); } catch (Exception ex) { log.Error(GetType(), string.Format("【{0}】通过主站点抓取开奖列表时发生错误,错误信息【{1}】", Config.Area + currentLottery, ex.Message)); } return(result); }
/// <summary> /// 从备用站抓取开奖数据 昨天/今天 /// </summary> /// <param name="IsToday"></param> /// <returns></returns> private List <XinJiangSSCEntity> GetDocByBackUrl(bool IsToday = true) { var list = new List <XinJiangSSCEntity>(); try { //Dictionary<string, int> dict = new Dictionary<string, int>(); var day = DateTime.Now.ToString("yyyyMMdd"); if (!IsToday) { day = DateTime.Now.AddDays(-1).ToString("yyyyMMdd"); } var HtmlResource = NetHelper.GetUrlResponse(Config.BackUrl, "POST", string.Format("selectDate={0}", day)); if (HtmlResource == null) { return(list); } var obj = HtmlResource.JsonToEntity <JArray>(); for (var i = 0; i < obj.Count; i++) { var tmp = new XinJiangSSCEntity { Id = int.Parse(obj[i]["lotteryIssue"].ToString().Substring(2)), OpenCode = obj[i]["lotteryNumber"].ToString(), OpenTime = CommonHelper.UnixTimeStamp(long.Parse(obj[i]["annoucementTime"]["time"].ToString() .Substring(0, obj[i]["annoucementTime"]["time"].ToString().Length - 3))) }; list.Add(tmp); } var checkDataHelper = new CheckDataHelper(); var dbdata = services.GetListIn(currentLottery, IsToday) .ToDictionary(w => w.Term.ToString(), w => w.GetCodeStr()); checkDataHelper.CheckData(dbdata, list.ToDictionary(w => w.Id.ToString(), w => w.OpenCode), Config.Area, currentLottery); } catch (Exception ee) { log.Error(GetType(), string.Format("【{0}】通过站点抓取开奖列表时发生错误,错误信息【{1}】", Config.Area + currentLottery, ee.Message)); } return(list); }
/// <summary> /// 通过主站点抓取开奖列表 /// </summary> /// <param name="url">请求地址</param> /// <returns></returns> private Dictionary <string, string> GetOpenListFromBackUrl(string url, bool IsToday = true) { var result = new Dictionary <string, string>(); try { var HtmlResource = NetHelper.GetUrlResponse(url); if (HtmlResource == null) { return(result); } var reg = new Regex(@"table_add_one_tr\(""(.*?)"", ""(.*?)""\);"); var mc = reg.Matches(HtmlResource); var matchQiHao = string.Empty; var matchKJHaoMa = string.Empty; foreach (Match m in mc) { if (!m.Success) { continue; } matchQiHao = m.Result("$1"); matchQiHao = matchQiHao.Substring(2); matchKJHaoMa = m.Result("$2"); if (string.IsNullOrEmpty(matchKJHaoMa)) { continue; } matchKJHaoMa = matchKJHaoMa.Replace("|", ","); result.Add(matchQiHao, CommonHelper.TRHandleCode(matchKJHaoMa)); } var checkDataHelper = new CheckDataHelper(); var dbdata = services.GetListIn(currentLottery, IsToday) .ToDictionary(w => w.Term.ToString(), w => w.GetCodeStr()); checkDataHelper.CheckData(dbdata, result, Config.Area, currentLottery); } catch (Exception ex) { log.Error(GetType(), string.Format("【{0}】通过副站点抓取开奖列表时发生错误,错误信息【{1}】", Config.Area + currentLottery, ex.Message)); } return(result); }
public DataSet Save(Dictionary <string, LibChangeRecord> changeRecord, Dictionary <string, string> extendParam = null) { if (extendParam != null && extendParam.Count != 0) { foreach (var item in extendParam) { ExtendBcfParam[item.Key] = JsonConvert.DeserializeObject(extendParam[item.Key], RegisterBcfParamType[item.Key]); } } this.DataSet = (DataSet)LibBillDataCache.Default.Get(this.ProgId); DataSetManager.ChangeDataHandle(this.DataSet, changeRecord, this.ManagerMessage); LibBillDataCache.Default.AddBillData(this.ProgId, this.DataSet); LibDBTransaction trans = this.DataAccess.BeginTransaction(); try { CheckDataHelper.CheckData(this); this.BeforeUpdate(); DataSetManager.SubmitData(this.DataSet, this.DataAccess); this.AfterUpdate(); if (this.ManagerMessage.IsThrow) { trans.Rollback(); this.DataSet.RejectChanges(); LibBillDataCache.Default.AddBillData(this.ProgId, this.DataSet); } else { trans.Commit(); LibBillDataCache.Default.Remove(this.ProgId); } } catch { trans.Rollback(); this.DataSet.RejectChanges(); LibBillDataCache.Default.AddBillData(this.ProgId, this.DataSet); throw; } this.AfterCommintData(); this.AfterChangeData(this.DataSet); this.DataSet.AcceptChanges(); return(this.DataSet); }
/// <summary> /// 通过主站点抓取今日最新开奖列表 /// </summary> /// <returns></returns> private Dictionary <string, string> GetTodayOpenListFromBackUrl() { var result = new Dictionary <string, string>(); try { var postdata = string.Format("selectDate={0}", CommonHelper.SCCSysDateTime.ToString("yyyyMMdd")); var HtmlResource = NetHelper.GetUrlResponse(Config.BackUrl, "POST", postdata); if (HtmlResource == null) { return(result); } var array = HtmlResource.JsonToEntity <JArray>(); if (array != null && array.Count > 0) { var matchQiHao = string.Empty; var matchKJHaoMa = string.Empty; foreach (var item in array) { matchQiHao = CommonHelper.SCCSysDateTime.ToString("yyMMdd") + item["lotteryIssue"].ToString().Trim().PadLeft(3, '0'); matchKJHaoMa = item["lotteryNumber"].ToString().Trim(); if (!result.ContainsKey(matchQiHao)) { result.Add(matchQiHao, CommonHelper.TRHandleCode(matchKJHaoMa)); } } var checkDataHelper = new CheckDataHelper(); var dbdata = services.GetListIn(currentLottery, true) .ToDictionary(w => w.Term.ToString(), w => w.GetCodeStr()); checkDataHelper.CheckData(dbdata, result, Config.Area, currentLottery); } } catch (Exception ex) { log.Error(GetType(), string.Format("【{0}】通过主站点抓取今日最新开奖列表时发生错误,错误信息【{1}】", Config.Area + currentLottery, ex.Message)); } return(result); }
public DataSet ImportData(string fileName) { bool ret = CheckHasPermission(FuncPermissionEnum.Import); if (ret) { AxCRL.Core.Excel.LibExcelHelper libExcelHelper = new Core.Excel.LibExcelHelper(); libExcelHelper.ImportToDataSet(System.IO.Path.Combine(AxCRL.Comm.Runtime.EnvProvider.Default.RuningPath, "TempData", "ImportData", fileName), this.DataSet, this.AfterImportDataInTable, this.AfterImportDataInRow); LibDBTransaction trans = this.DataAccess.BeginTransaction(); try { CheckImportData(this.DataSet); CheckDataHelper.CheckData(this); this.BeforeUpdate(); DataSetManager.SubmitData(this.DataSet, this.DataAccess); this.AfterUpdate(); if (this.ManagerMessage.IsThrow) { trans.Rollback(); this.DataSet.RejectChanges(); } else { trans.Commit(); } } catch { trans.Rollback(); this.DataSet.RejectChanges(); throw; } this.AfterCommintData(); this.AfterChangeData(this.DataSet); this.DataSet.AcceptChanges(); } return(this.DataSet); }
/// <summary> /// 从备用站抓取开奖数据 昨天/今天 /// </summary> /// <param name="IsToday"></param> /// <returns></returns> private List <ShanXiXiAnKL10FEntity> GetDocByBackUrl(bool IsToday = true) { var list = new List <ShanXiXiAnKL10FEntity>(); try { var day = DateTime.Now.ToString("yyyyMMdd"); if (!IsToday) { day = DateTime.Now.AddDays(-1).ToString("yyyyMMdd"); } var url = string.Format(Config.BackUrl, day); var HtmlResource = NetHelper.GetUrlResponse(url); if (HtmlResource == null) { return(list); } var doc = new XmlDocument(); doc.LoadXml(HtmlResource); var records = doc.SelectNodes("//row"); if (records == null) { return(list); } foreach (XmlNode xmlnode in records) { if (xmlnode.Attributes["expect"] == null || string.IsNullOrWhiteSpace(xmlnode.Attributes["expect"].Value) || xmlnode.Attributes["opencode"] == null || string.IsNullOrWhiteSpace(xmlnode.Attributes["opencode"].Value)) { continue; } var qihao = xmlnode.Attributes["expect"].Value.Substring(2); var nian = day.Substring(2); var num = nian + "0" + qihao; var opencode = xmlnode.Attributes["opencode"].Value; var opentime = xmlnode.Attributes["opentime"].Value; var tmp = new ShanXiXiAnKL10FEntity { Id = int.Parse(num), OpenCode = opencode, OpenTime = DateTime.Parse(opentime) }; list.Add(tmp); } var checkDataHelper = new CheckDataHelper(); var dbdata = services.GetListIn(currentLottery, IsToday) .ToDictionary(w => w.Term.ToString(), w => w.GetCodeStr()); checkDataHelper.CheckData(dbdata, list.ToDictionary(w => w.Id.ToString(), w => w.OpenCode), Config.Area, currentLottery); } catch (Exception ee) { log.Error(GetType(), string.Format("【{0}】通过站点抓取开奖列表时发生错误,错误信息【{1}】", Config.Area + currentLottery, ee.Message)); } return(list); }
/// <summary> /// 副站数据爬取 地址:https://fx.cp2y.com/draw/history_10065_Y/ /// </summary> /// <returns></returns> private List <OpenCode5DTModel> GetOpenListFromBackUrl() { var result = new List <OpenCode5DTModel>(); try { var htmlResource = NetHelper.GetUrlResponse(Config.BackUrl, Encoding.GetEncoding("utf-8")); if (htmlResource == null) { return(result); } var doc = new HtmlDocument(); doc.LoadHtml(htmlResource); var table = doc.DocumentNode.SelectSingleNode("//table"); if (table == null) { return(result); } var trs = table.ChildNodes.Where(node => node.Name == "tr").ToList(); List <HtmlNode> tds = null; string term = string.Empty, openCodeString = string.Empty, optimizeUrl = string.Empty; OpenCode5DTModel model = null; for (var i = 0; i < trs.Count; i++) { tds = trs[i].ChildNodes.Where(S => S.Name.ToLower() == "td").ToList(); if (tds.Count < 4) { continue; } model = new OpenCode5DTModel(); term = tds[0].InnerText.Trim(); if (term.StartsWith((CommonHelper.SCCSysDateTime.Year - 1).ToString())) { break; } model.Term = Convert.ToInt64(term); openCodeString = tds[2].InnerText.Replace(" ", "").Trim(); model.OpenCode1 = Convert.ToInt32(openCodeString.Substring(0, 2)); model.OpenCode2 = Convert.ToInt32(openCodeString.Substring(2, 2)); model.OpenCode3 = Convert.ToInt32(openCodeString.Substring(4, 2)); model.OpenCode4 = Convert.ToInt32(openCodeString.Substring(6, 2)); model.OpenCode5 = Convert.ToInt32(openCodeString.Substring(8, 2)); model.OpenTime = Convert.ToDateTime(tds[1].InnerText.Trim()); //组装开奖详情 result.Add(model); } var checkDataHelper = new CheckDataHelper(); var dbdata = services.GetListS <OpenCode5DTModel>(currentLottery) .ToDictionary(w => w.Term.ToString(), w => w.GetCodeStr()); checkDataHelper.CheckData(dbdata, result.ToDictionary(w => w.Term.ToString(), w => w.GetCodeStr()), Config.Area, currentLottery); } catch (Exception ex) { log.Error(GetType(), string.Format("【{0}】通过副站点抓取开奖列表时发生错误,错误信息【{1}】", Config.Area + currentLottery, ex.Message)); } return(result); }
private List <OpenCode5DTModel> GetOpenListFromMainUrl(string mainUrl) { var result = new List <OpenCode5DTModel>(); try { var url = new Uri(mainUrl); var htmlResource = NetHelper.GetUrlResponse(mainUrl, Encoding.GetEncoding("gb2312")); if (htmlResource == null) { return(result); } var doc = new HtmlDocument(); doc.LoadHtml(htmlResource); var table = doc.DocumentNode.SelectSingleNode("//table"); if (table == null) { return(result); } var trs = table.ChildNodes.Where(node => node.Name == "tr").ToList(); OpenCode5DTModel model = null; HtmlNode nodeA = null; var optimizeUrl = string.Empty; for (var i = 2; i < trs.Count; i++) //第一二行为表头 { var trstyle = trs[i].Attributes["style"]; if (trstyle != null && trstyle.Value == "display:none") { continue; } var tds = trs[i].ChildNodes.Where(node => node.Name == "td").ToList(); if (tds.Count < 10) { continue; } model = new OpenCode5DTModel(); nodeA = tds[0].ChildNodes.Where(n => n.Name == "a").FirstOrDefault(); if (nodeA == null) { continue; } model.Term = Convert.ToInt64(nodeA.InnerText.Trim()); optimizeUrl = nodeA.Attributes["href"].Value; model.DetailUrl = new Uri(url, optimizeUrl).AbsoluteUri; model.OpenTime = Convert.ToDateTime(tds[9].InnerText); if (tds[1].ChildNodes.Count == 0) { continue; } var opencodeNode = tds[1].ChildNodes.Where(n => n.Name.ToLower() == "i").ToList(); if (opencodeNode.Count < 5) { continue; } model.OpenCode1 = Convert.ToInt32(opencodeNode[0].InnerText.Trim()); model.OpenCode2 = Convert.ToInt32(opencodeNode[1].InnerText.Trim()); model.OpenCode3 = Convert.ToInt32(opencodeNode[2].InnerText.Trim()); model.OpenCode4 = Convert.ToInt32(opencodeNode[3].InnerText.Trim()); model.OpenCode5 = Convert.ToInt32(opencodeNode[4].InnerText.Trim()); var details = GetKaijiangDetails(tds); model.Spare = details; result.Add(model); } var checkDataHelper = new CheckDataHelper(); var dbdata = services.GetListS <OpenCode5DTModel>(currentLottery) .ToDictionary(w => w.Term.ToString(), w => w.GetCodeStr()); checkDataHelper.CheckData(dbdata, result.ToDictionary(w => w.Term.ToString(), w => w.GetCodeStr()), Config.Area, currentLottery); result = result.OrderByDescending(S => S.Term).ToList(); } catch (Exception ex) { log.Error(GetType(), string.Format("【{0}】通过主站点抓取开奖列表时发生错误,错误信息【{1}】", Config.Area + currentLottery, ex.Message)); } return(result); }
/// <summary> /// 抓取备用站点开奖数据 /// </summary> /// <param name="url">备用站点</param> /// <returns></returns> private Dictionary <string, string> GetOpenListFromBackUrl(string url, bool IsToday = true) { var result = new Dictionary <string, string>(); try { var HtmlResource = NetHelper.GetUrlResponse(url, Encoding.GetEncoding("gb2312")); if (HtmlResource == null) { return(result); } var doc = new HtmlDocument(); doc.LoadHtml(HtmlResource); var tables = doc.DocumentNode.SelectNodes("//table[@*]"); if (tables == null) { return(result); } foreach (var item in tables[0].ChildNodes) { var opencode = new List <string>(); var qihao = ""; foreach (var item2 in item.ChildNodes) { if (item2.Name == "th") { break; } if (item2.Name == "td") { foreach (var item3 in item2.ChildNodes) { if (item3.Name == "span") { qihao = item3.InnerText.Trim().Substring(0, item3.InnerText.Trim().Count() - 5); } if (item3.Name == "i") { var tmpcode = item3.InnerText; opencode.Add(tmpcode); } } } } if (opencode.Count == 6) { opencode.RemoveAt(5); result.Add(qihao, CommonHelper.TRHandleCode(string.Join(",", opencode))); } } var checkDataHelper = new CheckDataHelper(); var dbdata = services.GetListIn(currentLottery, IsToday) .ToDictionary(w => w.Term.ToString(), w => w.GetCodeStr()); checkDataHelper.CheckData(dbdata, result, Config.Area, currentLottery); } catch (Exception ex) { log.Error(GetType(), string.Format("【{0}】通过备用站点抓取开奖列表时发生错误,错误信息【{1}】", Config.Area + currentLottery, ex.Message)); } return(result); }
/// <summary> /// 通过主站点爬取开奖数据 /// </summary> private List <OpenCode7DTModel> GetOpenListFromMainUrl(string mainUrl) { var result = new List <OpenCode7DTModel>(); try { var url = new Uri(mainUrl); var htmlResource = NetHelper.GetUrlResponse(mainUrl, Encoding.GetEncoding("utf-8")); if (htmlResource == null) { return(result); } var doc = new HtmlDocument(); doc.LoadHtml(htmlResource); var table = doc.DocumentNode.SelectSingleNode("//table"); if (table == null) { return(result); } var trs = table.ChildNodes.Where(node => node.Name == "tr").ToList(); OpenCode7DTModel model = null; HtmlNode nodeA = null; var optimizeUrl = string.Empty; for (var i = 0; i < trs.Count; i++) //第一二行为表头 { var trstyle = trs[i].Attributes["style"]; if (trstyle != null && trstyle.Value == "display:none") { continue; } var tds = trs[i].ChildNodes.Where(node => node.Name == "td").ToList(); if (tds.Count < 12) { continue; } model = new OpenCode7DTModel(); var Term = tds[0].InnerText.Trim(); if (Term.Length <= 7) { model.Term = Convert.ToInt64("20" + Term); } else { model.Term = Convert.ToInt64(Term); } optimizeUrl = model.Term.ToString(); model.OpenTime = Convert.ToDateTime(tds[1].InnerText.Substring(0, 5)); if (tds[2].ChildNodes.Count == 0) { continue; } var b = tds[2].ChildNodes.Where(n => n.Name.ToLower() == "b").ToList(); var span = b[0].ChildNodes.Where(n => n.Name.ToLower() == "span").ToList(); model.OpenCode1 = Convert.ToInt32(span[0].InnerText.Replace(" ", "").Substring(0, 1).Trim()); model.OpenCode2 = Convert.ToInt32(span[0].InnerText.Replace(" ", "").Substring(1, 1).Trim()); model.OpenCode3 = Convert.ToInt32(span[0].InnerText.Replace(" ", "").Substring(2, 1).Trim()); model.OpenCode4 = Convert.ToInt32(span[0].InnerText.Replace(" ", "").Substring(3, 1).Trim()); model.OpenCode5 = Convert.ToInt32(span[0].InnerText.Replace(" ", "").Substring(4, 1).Trim()); model.OpenCode6 = Convert.ToInt32(span[0].InnerText.Replace(" ", "").Substring(5, 1).Trim()); model.OpenCode7 = Convert.ToInt32(span[0].InnerText.Replace(" ", "").Substring(6, 1).Trim()); var details = GetKaijiangDetails(optimizeUrl); model.Spare = details; result.Add(model); } var checkDataHelper = new CheckDataHelper(); var dbdata = services.GetListS <OpenCode7DTModel>(currentLottery) .ToDictionary(w => w.Term.ToString(), w => w.GetCodeStr()); checkDataHelper.CheckData(dbdata, result.ToDictionary(w => w.Term.ToString(), w => w.GetCodeStr()), Config.Area, currentLottery); result = result.OrderByDescending(S => S.Term).ToList(); } catch (Exception ex) { log.Error(GetType(), string.Format("【{0}】通过主站抓取开奖列表时发生错误,错误信息【{1}】", Config.Area + currentLottery, ex.Message)); } return(result); }
/// <summary> /// 从备用站抓取开奖数据 昨天/今天 /// </summary> /// <param name="IsToday"></param> /// <returns></returns> private List <ChongQingSSCEntity> GetDocByBackUrl(bool IsToday = true) { var list = new List <ChongQingSSCEntity>(); try { var day = DateTime.Now.ToString("yyyyMMdd"); if (!IsToday) { day = DateTime.Now.AddDays(-1).ToString("yyyyMMdd"); } var url = string.Format(Config.BackUrl, day); var HtmlResource = NetHelper.GetUrlResponse(url); if (HtmlResource == null) { return(list); } var doc = new HtmlDocument(); doc.LoadHtml(HtmlResource); var tables = doc.DocumentNode.SelectNodes("//*[@id=\"mainArea\"]/div[1]/table"); if (tables == null) { return(list); } foreach (var item in tables[0].ChildNodes) { foreach (var item2 in item.ChildNodes) { if (item2.GetAttributeValue("class", "") == "start" && item2.Name == "td") { var num = item2.GetAttributeValue("data-period", ""); var opencode = item2.GetAttributeValue("data-win-number", ""); if (!string.IsNullOrEmpty(opencode)) { var tmp = new ChongQingSSCEntity { Id = int.Parse(num), OpenCode = opencode.Replace(" ", ","), OpenTime = GetOpenTimeByPeriodNum(int.Parse(num)) }; list.Add(tmp); } } foreach (var item3 in item2.ChildNodes) { if (item3.GetAttributeValue("class", "") == "start" && item3.Name == "td") { var num2 = item3.GetAttributeValue("data-period", ""); var opencode2 = item3.GetAttributeValue("data-win-number", ""); if (!string.IsNullOrEmpty(opencode2)) { var tmp2 = new ChongQingSSCEntity { Id = int.Parse(num2), OpenCode = opencode2.Replace(" ", ","), OpenTime = GetOpenTimeByPeriodNum(int.Parse(num2)) }; list.Add(tmp2); } } foreach (var item4 in item3.ChildNodes) { if (item4.GetAttributeValue("class", "") == "start" && item4.Name == "td") { var num3 = item4.GetAttributeValue("data-period", ""); var opencode3 = item4.GetAttributeValue("data-win-number", ""); if (!string.IsNullOrEmpty(opencode3)) { var tmp3 = new ChongQingSSCEntity { Id = int.Parse(num3), OpenCode = CommonHelper.TRHandleCode(opencode3.Replace(" ", ",")), OpenTime = GetOpenTimeByPeriodNum(int.Parse(num3)) }; list.Add(tmp3); } } } } } } var checkDataHelper = new CheckDataHelper(); var dbdata = services.GetListIn(currentLottery, IsToday) .ToDictionary(w => w.Term.ToString(), w => w.GetCodeStr()); checkDataHelper.CheckData(dbdata, list.ToDictionary(w => w.Id.ToString(), w => w.OpenCode), Config.Area, currentLottery); } catch (Exception ee) { log.Error(GetType(), string.Format("【{0}】通过站点抓取开奖列表时发生错误,错误信息【{1}】", Config.Area + currentLottery, ee.Message)); } return(list); }
/// <summary> /// 获取备用站点开奖列表数据 /// </summary> /// <returns></returns> private List <OpenCode7DTModel> GetOpenListFromBackUrl() { var result = new List <OpenCode7DTModel>(); try { var url = string.Format("{0}&page = 1", Config.BackUrl); var htmlResource = NetHelper.GetUrlResponse(url, Encoding.Default); if (!string.IsNullOrEmpty(htmlResource)) { var doc = new HtmlDocument(); doc.LoadHtml(htmlResource); var tables = doc.DocumentNode.SelectNodes("//table[@class]"); foreach (var item in tables[0].ChildNodes) { if (item.Name == "tr") { if (item.GetAttributeValue("class", "") == "") { var tds = item.ChildNodes.Select(w => w).ToList(); tds.RemoveAll(w => w.Name != "td"); if (tds.Count != 10) { continue; } var qihao = tds[0].InnerText; var code = tds[1].InnerText; var optime = tds[9].InnerText; if (code.Length > 6) { var tmp = new OpenCode7DTModel { Term = long.Parse(qihao), OpenTime = DateTime.Parse(optime) }; tmp.OpenCode1 = int.Parse(code.Substring(0, 1)); tmp.OpenCode2 = int.Parse(code.Substring(1, 1)); tmp.OpenCode3 = int.Parse(code.Substring(2, 1)); tmp.OpenCode4 = int.Parse(code.Substring(3, 1)); tmp.OpenCode5 = int.Parse(code.Substring(4, 1)); tmp.OpenCode6 = int.Parse(code.Substring(5, 1)); tmp.OpenCode7 = int.Parse(code.Substring(6)); var entity = new KaijiangDetailsEntity(); entity.KaiJiangItems = new List <Kaijiangitem>(); var xiaoshoue = tds[2].InnerText.Replace(',', ' ').Replace('元', ' ').Trim(); var yidengjiang = new Kaijiangitem { Name = "一等奖", Total = tds[3].InnerText.Trim(), TotalMoney = tds[4].InnerText.Trim() }; entity.KaiJiangItems.Add(yidengjiang); var erdengjiang = new Kaijiangitem { Name = "二等奖", Total = tds[5].InnerText.Trim(), TotalMoney = tds[6].InnerText.Trim() }; entity.KaiJiangItems.Add(erdengjiang); var sandengjiang = new Kaijiangitem { Name = "三等奖", Total = tds[7].InnerText.Trim(), TotalMoney = tds[8].InnerText.Trim() }; entity.KaiJiangItems.Add(sandengjiang); entity.Trje = xiaoshoue; entity.Gdje = "0"; tmp.Spare = entity.TryToJson(); result.Add(tmp); } } } } var checkDataHelper = new CheckDataHelper(); var dbdata = services.GetListS <OpenCode7DTModel>(currentLottery) .ToDictionary(w => w.Term.ToString(), w => w.GetCodeStr()); checkDataHelper.CheckData(dbdata, result.ToDictionary(w => w.Term.ToString(), w => w.GetCodeStr()), Config.Area, currentLottery); } } catch (Exception ex) { log.Error(GetType(), string.Format("【{0}】通过备用站点抓取开奖列表时发生错误,错误信息【{1}】", Config.Area + currentLottery, ex.Message)); } return(result); }
/// <summary> /// 获取主站开奖列表数据 /// </summary> /// <param name="mainUrl">主站地址</param> /// <returns></returns> private List <OpenCode7DTModel> GetOpenListFromMainUrl(string mainUrl) { var result = new List <OpenCode7DTModel>(); try { var postData = "PlayType=6¤tPage=1&pageSize=200"; var htmlResource = NetHelper.GetUrlResponse(mainUrl, "POST", postData, Encoding.UTF8); if (htmlResource == null) { return(result); } var obj = htmlResource.JsonToEntity <JObject>(); var lotteryList = obj["LotteryNumberList"]; OpenCode7DTModel model = null; string[] openCodeList = null; var issue = string.Empty; foreach (var item in lotteryList) { issue = item["Issue"].ToString(); if (issue.StartsWith((CommonHelper.SCCSysDateTime.Year - 1).ToString())) { break; //只抓取今年数据 } model = new OpenCode7DTModel(); model.Term = Convert.ToInt64(issue); model.OpenTime = Convert.ToDateTime(item["LotteryDate"].ToString()); openCodeList = item["BasicNumber"].ToString().Trim().Replace("[", string.Empty) .Replace("]", string.Empty).Replace("\r\n", string.Empty).Replace("\"", string.Empty) .Split(','); if (openCodeList.Length != 6) { continue; } model.OpenCode1 = Convert.ToInt32(openCodeList[0]); model.OpenCode2 = Convert.ToInt32(openCodeList[1]); model.OpenCode3 = Convert.ToInt32(openCodeList[2]); model.OpenCode4 = Convert.ToInt32(openCodeList[3]); model.OpenCode5 = Convert.ToInt32(openCodeList[4]); model.OpenCode6 = Convert.ToInt32(openCodeList[5]); model.OpenCode7 = ConvertShengXiaoToNumber(item["SpecialNumber"].ToString()); model.Spare = string.IsNullOrEmpty(item["PrizePool"].ToString().Replace("万元", string.Empty)) ? "0" : item["PrizePool"].ToString().Replace("万元", string.Empty); result.Add(model); } var checkDataHelper = new CheckDataHelper(); var dbdata = services.GetListS <OpenCode7DTModel>(currentLottery) .ToDictionary(w => w.Term.ToString(), w => w.GetCodeStr()); checkDataHelper.CheckData(dbdata, result.ToDictionary(w => w.Term.ToString(), w => w.GetCodeStr()), Config.Area, currentLottery); result = result.OrderByDescending(S => S.Term).ToList(); } catch (Exception ex) { log.Error(GetType(), string.Format("【{0}】通过主站点抓取开奖列表时发生错误,错误信息【{1}】", Config.Area + currentLottery, ex.Message)); } return(result); }
private List <GuangXiK3Entity> GetDocByBackUrl(bool IsToday = true) { var list = new List <GuangXiK3Entity>(); try { var day = "?op=zhzs&num=jt"; if (!IsToday) { day = "?op=zhzs&num=zt"; } var url = string.Format("{0}{1}", Config.BackUrl, day); var HtmlResource = NetHelper.GetUrlResponse(url); if (!string.IsNullOrWhiteSpace(HtmlResource)) { var doc = new HtmlDocument(); doc.LoadHtml(HtmlResource); var tables = doc.DocumentNode.SelectNodes("//*[@id=\"fixedtable\"]"); var matchQiHao = string.Empty; var matchKJHaoMa = string.Empty; foreach (var item in tables[0].ChildNodes) { if (item.HasChildNodes && item.Name == "tr") { var opencode = new List <string>(); var num = string.Empty; foreach (var item2 in item.ChildNodes) { if (item2.GetAttributeValue("class", "") == "chart-bg-qh") { num = item2.InnerText.Trim(); } if (item2.GetAttributeValue("style", "") == "display:none;") { //数据加密保存在此,去掉两头然后base64转码 var base64str = item2.InnerText.Trim().Substring(1); base64str = base64str.Substring(0, base64str.Length - 1); var codestr = DecodeBase64(Encoding.Default, base64str); opencode.Add(codestr); } } if (opencode.Count == 3) { var qihao = num; var tmp = new GuangXiK3Entity { QiHao = num.Remove(6, 1), KaiJiangHao = CommonHelper.TRHandleCode(string.Join(",", opencode)), OpenTime = GetOpenTimeByPeriodNum(int.Parse(num)) }; list.Add(tmp); } } } } var checkDataHelper = new CheckDataHelper(); var dbdata = services.GetListIn(currentLottery, IsToday) .ToDictionary(w => w.Term.ToString(), w => w.GetCodeStr()); checkDataHelper.CheckData(dbdata, list.ToDictionary(w => w.QiHao, w => w.KaiJiangHao), Config.Area, currentLottery); } catch (Exception ee) { log.Error(GetType(), string.Format("【{0}】通过站点抓取开奖列表时发生错误,错误信息【{1}】", Config.Area + currentLottery, ee.Message)); } return(list); }
/// <summary> /// 从备用站抓取开奖数据 昨天/今天 /// </summary> /// <param name="IsToday"></param> /// <returns></returns> private List <HeiLongJiangKL10FEntity> GetDocByBackUrl(bool IsToday = true) { var list = new List <HeiLongJiangKL10FEntity>(); try { var day = "1"; if (!IsToday) { day = "2"; } var url = string.Format(Config.BackUrl, day); var HtmlResource = NetHelper.GetUrlResponse(url); if (HtmlResource == null) { return(list); } var doc = new HtmlDocument(); doc.LoadHtml(HtmlResource); var tables = doc.DocumentNode.SelectNodes("//*[@id=\"ZstTable\"]"); if (tables == null) { return(list); } foreach (var item in tables[0].ChildNodes) { var opencode = new List <string>(); var qihao = ""; if (item.GetAttributeValue("class", "").Contains("datainfo ")) { foreach (var item2 in item.ChildNodes) { if (item2.GetAttributeValue("class", "") == "issue n_right_2") { qihao = item2.InnerText; } if (!item2.HasAttributes || item2.GetAttributeValue("style", "") == "color:red;") { opencode.Add(item2.InnerText.Trim()); } } } if (opencode.Count == 8) { var tmp = new HeiLongJiangKL10FEntity { Id = int.Parse(qihao), OpenCode = CommonHelper.TRHandleCode(string.Join(",", opencode)), OpenTime = HandleOpenTime(qihao) }; list.Add(tmp); } } var checkDataHelper = new CheckDataHelper(); var dbdata = services.GetListIn(currentLottery, IsToday) .ToDictionary(w => w.Term.ToString(), w => w.GetCodeStr()); checkDataHelper.CheckData(dbdata, list.ToDictionary(w => w.Id.ToString(), w => w.OpenCode), Config.Area, currentLottery); } catch (Exception ee) { log.Error(GetType(), string.Format("【{0}】通过站点抓取开奖列表时发生错误,错误信息【{1}】", Config.Area + currentLottery, ee.Message)); } return(list); }