using AngleSharp.Html.Parser; using DTO; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Linq; using System.Net.Http; using System.Net.Http.Headers; using System.Text; using System.Threading; using zhengcaioa.Models; namespace Crawler.sichuan { public class sichuanoperation { public static string sichuanpageurll = "https://zfcg.scsczt.cn"; public static void operations(WebCrawlerContext _ccontext, zhengcaioaContext _ccontext1) { try { //获取更新时间 string operationStartTime = ""; Updatetime updatetime = _ccontext.Updatetimes.Where(x=>x.Sheng=="四川省").FirstOrDefault(); if (updatetime != null) { operationStartTime = updatetime.Updatetime1.ToString("yyyy-MM-dd")+ "%2000:00:00"; //updatetime.Updatetime1 = DateTime.Now.AddDays(-1); //_ccontext.SaveChanges(); } //else //{ // updatetime = new Updatetime(); // updatetime.Id = Guid.NewGuid().ToString(); // updatetime.Sheng = "四川省"; // updatetime.Updatetime1 = DateTime.Now.AddDays(-1); // _ccontext.Updatetimes.Add(updatetime); // _ccontext.SaveChanges(); //} //翻页信息 int currPage = 1; int pageSize = 10; //开始访问 采购公告 logg.WriteLog("四川省意向公开 开始获取", "四川"); while (true) { logg.WriteLog(currPage.ToString(), "四川"); string address = "https://zfcg.scsczt.cn/freecms/rest/v1/notice/selectInfoMoreChannel.do?&siteId=94c965cc-c55d-4f92-8469-d5875c68bd04&channel=c5bff13f-21ca-4dac-b158-cb40accd3035&currPage=" + currPage + "&pageSize=" + pageSize + "¬iceType=59®ionCode=&purchaseManner=&title=&openTenderCode=&purchaser=&agency=&purchaseNature=&operationStartTime=" + operationStartTime + "&operationEndTime=&selectTimeName=noticeTime&cityOrArea="; using (HttpClient client = new HttpClient()) { client.Timeout = TimeSpan.FromSeconds(60); HttpResponseMessage response = client.GetAsync(address).Result; var res = response.Content.ReadAsStringAsync().Result; sichuanjieshou sichuan = JsonConvert.DeserializeObject(res); //保存项目到sqlserveer和elasticsearch if (sichuan.data != null && sichuan.data.Count > 0) { foreach (var sichuanjieshoudtl in sichuan.data) { var pageurl1 = sichuanpageurll + sichuanjieshoudtl.pageurl; var notime = sichuanjieshoudtl.noticeTime.ToString("yyyy-MM-dd"); var notimestart = DateTime.Parse(notime); var notimeend = notimestart.AddDays(1); var zhengfuProjectCount = _ccontext.ZhengfuProjects.Count(x => (x.RecStatus == "A" && x.Pageurl == pageurl1) || (x.RecStatus == "A" && x.Title == sichuanjieshoudtl.title && x.Gglx == "01" && x.NoticeTime >= notimestart && x.NoticeTime < notimeend)); if (zhengfuProjectCount <= 0) { var zhengfuProject = new ZhengfuProject(); zhengfuProject.Id = Guid.NewGuid().ToString(); zhengfuProject.Gglx = "01"; string gglxName = "意向公开"; zhengfuProject.NoticeTime = sichuanjieshoudtl.noticeTime; zhengfuProject.OpenTenderTime = sichuanjieshoudtl.openTenderTime; zhengfuProject.RegionCode = sichuanjieshoudtl.regionCode; string regionName = sichuanjieshoudtl.regionName; zhengfuProject.Sheng = "510000"; string ShengName = "四川省"; string CityName = ""; if ("510001" == sichuanjieshoudtl.regionCode) { zhengfuProject.RegionCode = ""; regionName = ""; zhengfuProject.City = "510001"; CityName = "省本级"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5101")) { zhengfuProject.City = "510100"; CityName = "成都市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5103")) { zhengfuProject.City = "510300"; CityName = "自贡市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5104")) { zhengfuProject.City = "510400"; CityName = "攀枝花市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5105")) { zhengfuProject.City = "510500"; CityName = "泸州市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5106")) { zhengfuProject.City = "510600"; CityName = "德阳市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5107")) { zhengfuProject.City = "510700"; CityName = "绵阳市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5108")) { zhengfuProject.City = "510800"; CityName = "广元市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5109")) { zhengfuProject.City = "510900"; CityName = "遂宁市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5110")) { zhengfuProject.City = "511000"; CityName = "内江市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5111")) { zhengfuProject.City = "511100"; CityName = "乐山市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5113")) { zhengfuProject.City = "511300"; CityName = "南充市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5114")) { zhengfuProject.City = "5114"; CityName = "眉山市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5115")) { zhengfuProject.City = "511500"; CityName = "宜宾市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5116")) { zhengfuProject.City = "511600"; CityName = "广安市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5117")) { zhengfuProject.City = "511700"; CityName = "达州市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5118")) { zhengfuProject.City = "511800"; CityName = "雅安市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5119")) { zhengfuProject.City = "511900"; CityName = "巴中市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5120")) { zhengfuProject.City = "512000"; CityName = "资阳市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5132")) { zhengfuProject.City = "513200"; CityName = "阿坝州"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5133")) { zhengfuProject.City = "513300"; CityName = "甘孜州"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5134")) { zhengfuProject.City = "513400"; CityName = "凉山州"; } string cgfsName = ""; switch (sichuanjieshoudtl.purchaseManner) { case "1": zhengfuProject.Cgfs = "1"; cgfsName = "公开招标"; break; case "2": zhengfuProject.Cgfs = "2"; cgfsName = "邀请招标"; break; case "3": zhengfuProject.Cgfs = "5"; cgfsName = "竞争性谈判"; break; case "4": zhengfuProject.Cgfs = "4"; cgfsName = "询价"; break; case "5": zhengfuProject.Cgfs = "7"; cgfsName = "单一来源"; break; case "6": zhengfuProject.Cgfs = "3"; cgfsName = "竞争性磋商"; break; case "9": zhengfuProject.Cgfs = "10"; cgfsName = "其他"; break; default: zhengfuProject.Cgfs = "10"; cgfsName = "其他"; break; } zhengfuProject.OpenTenderCode = sichuanjieshoudtl.openTenderCode; zhengfuProject.Title = sichuanjieshoudtl.title; zhengfuProject.Shorttitle = sichuanjieshoudtl.shorttitle; zhengfuProject.Pageurl = sichuanpageurll + sichuanjieshoudtl.pageurl; zhengfuProject.Purchaser = sichuanjieshoudtl.purchaser; if (!string.IsNullOrWhiteSpace(sichuanjieshoudtl.budget)) { zhengfuProject.Budget = decimal.Parse(sichuanjieshoudtl.budget); } zhengfuProject.Agency = sichuanjieshoudtl.agency; zhengfuProject.AgencyCode = sichuanjieshoudtl.agencyCode; zhengfuProject.Content = sichuanjieshoudtl.content.Replace("\r", string.Empty).Replace("\n", string.Empty).Replace("\t", string.Empty).Replace(@"\", string.Empty); zhengfuProject.RecStatus = "A"; zhengfuProject.Creater = "1"; zhengfuProject.Createtime = DateTime.Now; zhengfuProject.Modifier = "1"; zhengfuProject.Modifytime = zhengfuProject.Createtime; _ccontext.ZhengfuProjects.Add(zhengfuProject); string url = $"{Program.api_domain}/webcrawler/_doc/" + zhengfuProject.Id; string result = string.Empty; Uri postUrl = new Uri(url); eswebcrawler eswebcrawler1 = new eswebcrawler(); eswebcrawler1.Id = zhengfuProject.Id; eswebcrawler1.noticeTime = zhengfuProject.NoticeTime.ToString("yyyy-MM-dd HH:mm:ss"); eswebcrawler1.openTenderTime = zhengfuProject.OpenTenderTime.HasValue ? zhengfuProject.OpenTenderTime.Value.ToString("yyyy-MM-dd HH:mm:ss") : null; eswebcrawler1.sheng = zhengfuProject.Sheng; eswebcrawler1.shengName = ShengName; eswebcrawler1.city = zhengfuProject.City; eswebcrawler1.cityName = CityName; eswebcrawler1.regionCode = zhengfuProject.RegionCode; eswebcrawler1.regionName = regionName; eswebcrawler1.cgfs = zhengfuProject.Cgfs; eswebcrawler1.cgfsName = cgfsName; eswebcrawler1.gglx = zhengfuProject.Gglx; eswebcrawler1.gglxName = gglxName; eswebcrawler1.openTenderCode = zhengfuProject.OpenTenderCode; eswebcrawler1.title = zhengfuProject.Title; eswebcrawler1.shorttitle = zhengfuProject.Shorttitle; eswebcrawler1.pageurl = zhengfuProject.Pageurl; eswebcrawler1.pingmu = zhengfuProject.Pingmu; eswebcrawler1.pingmuName = ""; eswebcrawler1.purchaser = zhengfuProject.Purchaser; eswebcrawler1.budget = zhengfuProject.Budget.HasValue ? zhengfuProject.Budget.Value.ToString() : ""; eswebcrawler1.agency = zhengfuProject.Agency; eswebcrawler1.agencyCode = zhengfuProject.AgencyCode; eswebcrawler1.modifyTime = zhengfuProject.Modifytime.ToString("yyyy-MM-dd HH:mm:ss"); string requestJson = JsonConvert.SerializeObject(eswebcrawler1); using (HttpContent httpContent = new StringContent(requestJson)) { httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json"); using (HttpClient httpClient = new HttpClient()) { httpClient.Timeout = TimeSpan.FromSeconds(60); HttpResponseMessage responseMessage = httpClient.PutAsync(postUrl, httpContent).Result; result = responseMessage.Content.ReadAsStringAsync().Result; } } Newtonsoft.Json.Linq.JObject jobject = (Newtonsoft.Json.Linq.JObject)JsonConvert.DeserializeObject(result); if (jobject["error"] == null && jobject["_shards"]["successful"].ToString() == "1") { } else { throw new Exception("保存数据库出错!"); } _ccontext.SaveChanges(); } } } if (currPage * pageSize >= sichuan.total) { break; } else { currPage += 1; } Thread.CurrentThread.Join(1000 * 20);//阻止设定时间 } } logg.WriteLog("四川省意向公开 获取完成", "四川"); //翻页信息 currPage = 1; pageSize = 10; //开始访问 采购公告 logg.WriteLog("四川省采购公告 开始获取", "四川"); while (true) { logg.WriteLog(currPage.ToString(), "四川"); string address = "https://zfcg.scsczt.cn/freecms/rest/v1/notice/selectInfoMoreChannel.do?&siteId=94c965cc-c55d-4f92-8469-d5875c68bd04&channel=c5bff13f-21ca-4dac-b158-cb40accd3035&currPage=" + currPage + "&pageSize=" + pageSize + "¬iceType=00101®ionCode=&purchaseManner=&title=&openTenderCode=&purchaser=&agency=&purchaseNature=&operationStartTime=" + operationStartTime + "&operationEndTime=&selectTimeName=noticeTime&cityOrArea="; using (HttpClient client = new HttpClient()) { client.Timeout = TimeSpan.FromSeconds(60); HttpResponseMessage response = client.GetAsync(address).Result; var res = response.Content.ReadAsStringAsync().Result; sichuanjieshou sichuan = JsonConvert.DeserializeObject(res); //保存项目到sqlserveer和elasticsearch if (sichuan.data != null && sichuan.data.Count > 0) { foreach (var sichuanjieshoudtl in sichuan.data) { var pageurl1 = sichuanpageurll + sichuanjieshoudtl.pageurl; var notime = sichuanjieshoudtl.noticeTime.ToString("yyyy-MM-dd"); var notimestart = DateTime.Parse(notime); var notimeend = notimestart.AddDays(1); var zhengfuProjectCount = _ccontext.ZhengfuProjects.Count(x => (x.RecStatus == "A" && x.Pageurl == pageurl1) || (x.RecStatus == "A" && x.Title == sichuanjieshoudtl.title && x.Gglx == "02" && x.NoticeTime >= notimestart && x.NoticeTime < notimeend)); if (zhengfuProjectCount <= 0) { var zhengfuProject = new ZhengfuProject(); zhengfuProject.Id = Guid.NewGuid().ToString(); zhengfuProject.Gglx = "02"; string gglxName = "采购公告"; zhengfuProject.NoticeTime = sichuanjieshoudtl.noticeTime; zhengfuProject.OpenTenderTime = sichuanjieshoudtl.openTenderTime; zhengfuProject.RegionCode = sichuanjieshoudtl.regionCode; string regionName = sichuanjieshoudtl.regionName; zhengfuProject.Sheng = "510000"; string ShengName = "四川省"; string CityName = ""; if ("510001" == sichuanjieshoudtl.regionCode) { zhengfuProject.RegionCode = ""; regionName = ""; zhengfuProject.City = "510001"; CityName = "省本级"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5101")) { zhengfuProject.City = "510100"; CityName = "成都市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5103")) { zhengfuProject.City = "510300"; CityName = "自贡市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5104")) { zhengfuProject.City = "510400"; CityName = "攀枝花市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5105")) { zhengfuProject.City = "510500"; CityName = "泸州市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5106")) { zhengfuProject.City = "510600"; CityName = "德阳市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5107")) { zhengfuProject.City = "510700"; CityName = "绵阳市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5108")) { zhengfuProject.City = "510800"; CityName = "广元市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5109")) { zhengfuProject.City = "510900"; CityName = "遂宁市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5110")) { zhengfuProject.City = "511000"; CityName = "内江市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5111")) { zhengfuProject.City = "511100"; CityName = "乐山市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5113")) { zhengfuProject.City = "511300"; CityName = "南充市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5114")) { zhengfuProject.City = "5114"; CityName = "眉山市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5115")) { zhengfuProject.City = "511500"; CityName = "宜宾市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5116")) { zhengfuProject.City = "511600"; CityName = "广安市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5117")) { zhengfuProject.City = "511700"; CityName = "达州市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5118")) { zhengfuProject.City = "511800"; CityName = "雅安市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5119")) { zhengfuProject.City = "511900"; CityName = "巴中市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5120")) { zhengfuProject.City = "512000"; CityName = "资阳市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5132")) { zhengfuProject.City = "513200"; CityName = "阿坝州"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5133")) { zhengfuProject.City = "513300"; CityName = "甘孜州"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5134")) { zhengfuProject.City = "513400"; CityName = "凉山州"; } string cgfsName = ""; switch (sichuanjieshoudtl.purchaseManner) { case "1": zhengfuProject.Cgfs = "1"; cgfsName = "公开招标"; break; case "2": zhengfuProject.Cgfs = "2"; cgfsName = "邀请招标"; break; case "3": zhengfuProject.Cgfs = "5"; cgfsName = "竞争性谈判"; break; case "4": zhengfuProject.Cgfs = "4"; cgfsName = "询价"; break; case "5": zhengfuProject.Cgfs = "7"; cgfsName = "单一来源"; break; case "6": zhengfuProject.Cgfs = "3"; cgfsName = "竞争性磋商"; break; case "9": zhengfuProject.Cgfs = "10"; cgfsName = "其他"; break; default: zhengfuProject.Cgfs = "10"; cgfsName = "其他"; break; } zhengfuProject.OpenTenderCode = sichuanjieshoudtl.openTenderCode; zhengfuProject.Title = sichuanjieshoudtl.title; zhengfuProject.Shorttitle = sichuanjieshoudtl.shorttitle; zhengfuProject.Pageurl = sichuanpageurll + sichuanjieshoudtl.pageurl; zhengfuProject.Purchaser = sichuanjieshoudtl.purchaser; if (!string.IsNullOrWhiteSpace(sichuanjieshoudtl.budget)) { zhengfuProject.Budget = decimal.Parse(sichuanjieshoudtl.budget); } zhengfuProject.Agency = sichuanjieshoudtl.agency; zhengfuProject.AgencyCode = sichuanjieshoudtl.agencyCode; zhengfuProject.Content = sichuanjieshoudtl.content.Replace("\r", string.Empty).Replace("\n", string.Empty).Replace("\t", string.Empty).Replace(@"\", string.Empty); zhengfuProject.RecStatus = "A"; zhengfuProject.Creater = "1"; zhengfuProject.Createtime = DateTime.Now; zhengfuProject.Modifier = "1"; zhengfuProject.Modifytime = zhengfuProject.Createtime; _ccontext.ZhengfuProjects.Add(zhengfuProject); string url = $"{Program.api_domain}/webcrawler/_doc/" + zhengfuProject.Id; string result = string.Empty; Uri postUrl = new Uri(url); eswebcrawler eswebcrawler1 = new eswebcrawler(); eswebcrawler1.Id = zhengfuProject.Id; eswebcrawler1.noticeTime = zhengfuProject.NoticeTime.ToString("yyyy-MM-dd HH:mm:ss"); eswebcrawler1.openTenderTime = zhengfuProject.OpenTenderTime.HasValue ? zhengfuProject.OpenTenderTime.Value.ToString("yyyy-MM-dd HH:mm:ss") : null; eswebcrawler1.sheng = zhengfuProject.Sheng; eswebcrawler1.shengName = ShengName; eswebcrawler1.city = zhengfuProject.City; eswebcrawler1.cityName = CityName; eswebcrawler1.regionCode = zhengfuProject.RegionCode; eswebcrawler1.regionName = regionName; eswebcrawler1.cgfs = zhengfuProject.Cgfs; eswebcrawler1.cgfsName = cgfsName; eswebcrawler1.gglx = zhengfuProject.Gglx; eswebcrawler1.gglxName = gglxName; eswebcrawler1.openTenderCode = zhengfuProject.OpenTenderCode; eswebcrawler1.title = zhengfuProject.Title; eswebcrawler1.shorttitle = zhengfuProject.Shorttitle; eswebcrawler1.pageurl = zhengfuProject.Pageurl; eswebcrawler1.pingmu = zhengfuProject.Pingmu; eswebcrawler1.pingmuName = ""; eswebcrawler1.purchaser = zhengfuProject.Purchaser; eswebcrawler1.budget = zhengfuProject.Budget.HasValue ? zhengfuProject.Budget.Value.ToString() : ""; eswebcrawler1.agency = zhengfuProject.Agency; eswebcrawler1.agencyCode = zhengfuProject.AgencyCode; eswebcrawler1.modifyTime = zhengfuProject.Modifytime.ToString("yyyy-MM-dd HH:mm:ss"); string requestJson = JsonConvert.SerializeObject(eswebcrawler1); using (HttpContent httpContent = new StringContent(requestJson)) { httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json"); using (HttpClient httpClient = new HttpClient()) { httpClient.Timeout = TimeSpan.FromSeconds(60); HttpResponseMessage responseMessage = httpClient.PutAsync(postUrl, httpContent).Result; result = responseMessage.Content.ReadAsStringAsync().Result; } } Newtonsoft.Json.Linq.JObject jobject = (Newtonsoft.Json.Linq.JObject)JsonConvert.DeserializeObject(result); if (jobject["error"] == null && jobject["_shards"]["successful"].ToString() == "1") { } else { throw new Exception("保存数据库出错!"); } _ccontext.SaveChanges(); } } } if (currPage * pageSize >= sichuan.total) { break; } else { currPage += 1; } Thread.CurrentThread.Join(1000 * 20);//阻止设定时间 } } logg.WriteLog("四川省采购公告 获取完成", "四川"); //翻页信息 currPage = 1; pageSize = 10; //开始访问 采购公告 logg.WriteLog("四川省中标公告 开始获取", "四川"); while (true) { logg.WriteLog(currPage.ToString(), "四川"); string address = "https://zfcg.scsczt.cn/freecms/rest/v1/notice/selectInfoMoreChannel.do?&siteId=94c965cc-c55d-4f92-8469-d5875c68bd04&channel=c5bff13f-21ca-4dac-b158-cb40accd3035&currPage=" + currPage + "&pageSize=" + pageSize + "¬iceType=00102®ionCode=&purchaseManner=&title=&openTenderCode=&purchaser=&agency=&purchaseNature=&operationStartTime=" + operationStartTime + "&operationEndTime=&selectTimeName=noticeTime&cityOrArea="; using (HttpClient client = new HttpClient()) { client.Timeout = TimeSpan.FromSeconds(60); HttpResponseMessage response = client.GetAsync(address).Result; var res = response.Content.ReadAsStringAsync().Result; sichuanjieshou sichuan = JsonConvert.DeserializeObject(res); //保存项目到sqlserveer和elasticsearch if (sichuan.data != null && sichuan.data.Count > 0) { foreach (var sichuanjieshoudtl in sichuan.data) { var pageurl1 = sichuanpageurll + sichuanjieshoudtl.pageurl; var notime = sichuanjieshoudtl.noticeTime.ToString("yyyy-MM-dd"); var notimestart = DateTime.Parse(notime); var notimeend = notimestart.AddDays(1); var zhengfuProjectCount = _ccontext.ZhengfuProjects.Count(x => (x.RecStatus == "A" && x.Pageurl == pageurl1) || (x.RecStatus == "A" && x.Title == sichuanjieshoudtl.title && x.Gglx == "03" && x.NoticeTime >= notimestart && x.NoticeTime < notimeend)); if (zhengfuProjectCount <= 0) { var zhengfuProject = new ZhengfuProject(); zhengfuProject.Id = Guid.NewGuid().ToString(); zhengfuProject.Gglx = "03"; string gglxName = "结果公告"; zhengfuProject.NoticeTime = sichuanjieshoudtl.noticeTime; zhengfuProject.OpenTenderTime = sichuanjieshoudtl.openTenderTime; zhengfuProject.RegionCode = sichuanjieshoudtl.regionCode; string regionName = sichuanjieshoudtl.regionName; zhengfuProject.Sheng = "510000"; string ShengName = "四川省"; string CityName = ""; if ("510001" == sichuanjieshoudtl.regionCode) { zhengfuProject.RegionCode = ""; regionName = ""; zhengfuProject.City = "510001"; CityName = "省本级"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5101")) { zhengfuProject.City = "510100"; CityName = "成都市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5103")) { zhengfuProject.City = "510300"; CityName = "自贡市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5104")) { zhengfuProject.City = "510400"; CityName = "攀枝花市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5105")) { zhengfuProject.City = "510500"; CityName = "泸州市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5106")) { zhengfuProject.City = "510600"; CityName = "德阳市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5107")) { zhengfuProject.City = "510700"; CityName = "绵阳市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5108")) { zhengfuProject.City = "510800"; CityName = "广元市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5109")) { zhengfuProject.City = "510900"; CityName = "遂宁市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5110")) { zhengfuProject.City = "511000"; CityName = "内江市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5111")) { zhengfuProject.City = "511100"; CityName = "乐山市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5113")) { zhengfuProject.City = "511300"; CityName = "南充市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5114")) { zhengfuProject.City = "511400"; CityName = "眉山市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5115")) { zhengfuProject.City = "511500"; CityName = "宜宾市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5116")) { zhengfuProject.City = "511600"; CityName = "广安市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5117")) { zhengfuProject.City = "511700"; CityName = "达州市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5118")) { zhengfuProject.City = "511800"; CityName = "雅安市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5119")) { zhengfuProject.City = "511900"; CityName = "巴中市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5120")) { zhengfuProject.City = "512000"; CityName = "资阳市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5132")) { zhengfuProject.City = "513200"; CityName = "阿坝州"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5133")) { zhengfuProject.City = "513300"; CityName = "甘孜州"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5134")) { zhengfuProject.City = "513400"; CityName = "凉山州"; } string cgfsName = ""; string BieCgfs = ""; switch (sichuanjieshoudtl.purchaseManner) { case "1": zhengfuProject.Cgfs = "1"; cgfsName = "公开招标"; BieCgfs = "e4c93811-b9b1-4998-89f5-c416ebab0c11"; break; case "2": zhengfuProject.Cgfs = "2"; cgfsName = "邀请招标"; BieCgfs = "e4c93811-b9b1-4998-89f5-c416ebab0c12"; break; case "3": zhengfuProject.Cgfs = "5"; cgfsName = "竞争性谈判"; BieCgfs = "e4c93811-b9b1-4998-89f5-c416ebab0c14"; break; case "4": zhengfuProject.Cgfs = "4"; cgfsName = "询价"; BieCgfs = "e4c93811-b9b1-4998-89f5-c416ebab0c15"; break; case "5": zhengfuProject.Cgfs = "7"; cgfsName = "单一来源"; BieCgfs = "e4c93811-b9b1-4998-89f5-c416ebab0c16"; break; case "6": zhengfuProject.Cgfs = "3"; cgfsName = "竞争性磋商"; BieCgfs = "e4c93811-b9b1-4998-89f5-c416ebab0c13"; break; case "9": zhengfuProject.Cgfs = "10"; cgfsName = "其他"; BieCgfs = ""; break; default: zhengfuProject.Cgfs = "10"; cgfsName = "其他"; BieCgfs = ""; break; } zhengfuProject.OpenTenderCode = sichuanjieshoudtl.openTenderCode; zhengfuProject.Title = sichuanjieshoudtl.title; zhengfuProject.Shorttitle = sichuanjieshoudtl.shorttitle; zhengfuProject.Pageurl = sichuanpageurll + sichuanjieshoudtl.pageurl; zhengfuProject.Purchaser = sichuanjieshoudtl.purchaser; if (!string.IsNullOrWhiteSpace(sichuanjieshoudtl.budget)) { zhengfuProject.Budget = decimal.Parse(sichuanjieshoudtl.budget); } zhengfuProject.Agency = sichuanjieshoudtl.agency; zhengfuProject.AgencyCode = sichuanjieshoudtl.agencyCode; zhengfuProject.Content = sichuanjieshoudtl.content.Replace("\r", string.Empty).Replace("\n", string.Empty).Replace("\t", string.Empty).Replace(@"\", string.Empty); zhengfuProject.RecStatus = "A"; zhengfuProject.Creater = "1"; zhengfuProject.Createtime = DateTime.Now; zhengfuProject.Modifier = "1"; zhengfuProject.Modifytime = zhengfuProject.Createtime; _ccontext.ZhengfuProjects.Add(zhengfuProject); Project project = new Project(); project.Id = zhengfuProject.Id; project.StartTime = zhengfuProject.NoticeTime; project.Sheng = zhengfuProject.Sheng; project.City = zhengfuProject.City; if (project.City == "510001") { project.AreaId = "510002"; } else { project.AreaId = zhengfuProject.RegionCode; } project.Cgfs = BieCgfs; project.Number = zhengfuProject.OpenTenderCode; project.Name = zhengfuProject.Title; if (zhengfuProject.Budget.HasValue) { project.Caigouyusuan = zhengfuProject.Budget.Value / new decimal(10000); } project.Question = zhengfuProject.Pageurl; var parser = new HtmlParser(); var document = parser.ParseDocument(zhengfuProject.Content); var cDocumet = document.All.Where(m => m.Id == "noticeArea").FirstOrDefault(); if (cDocumet != null) { //var cDocumet = contentList.First(); var Numberss = cDocumet.QuerySelectorAll("p"); foreach (var Number in Numberss) { if (Number != null && Number.TextContent.Contains("废标理由")) { var Fbyy = Number.QuerySelector("span"); project.Fbyy = Fbyy.TextContent.Trim(); } } var Caigourennames = cDocumet.QuerySelectorAll("span").Where(m => m.Id == "_notice_content_noticePurchase-purchaserOrgName"); if (Caigourennames != null && Caigourennames.ToList().Count > 0) { var Caigourenname = Caigourennames.First(); project.Caigourenname = Caigourenname.TextContent; } var Caigourenaddresss = cDocumet.QuerySelectorAll("span").Where(m => m.Id == "_notice_content_noticePurchase-purchaserOrgAddress"); if (Caigourenaddresss != null && Caigourenaddresss.ToList().Count > 0) { var Caigourenaddress = Caigourenaddresss.First(); project.Caigourenaddress = Caigourenaddress.TextContent; } var Caigourencontacts = cDocumet.QuerySelectorAll("span").Where(m => m.Id == "_notice_content_noticePurchase-purchaserLinkTel"); if (Caigourencontacts != null && Caigourencontacts.ToList().Count > 0) { var Caigourencontact = Caigourencontacts.First(); project.Caigourencontact = Caigourencontact.TextContent; } var Dailinames = cDocumet.QuerySelectorAll("span").Where(m => m.Id == "_notice_content_noticeAgency-agencyName"); if (Dailinames != null && Dailinames.ToList().Count > 0) { var Dailiname = Dailinames.First(); project.Dailiname = Dailiname.TextContent; } var Dailiaddresss = cDocumet.QuerySelectorAll("span").Where(m => m.Id == "_notice_content_noticeAgency-agentAddress"); if (Dailiaddresss != null && Dailiaddresss.ToList().Count > 0) { var Dailiaddress = Dailiaddresss.First(); project.Dailiaddress = Dailiaddress.TextContent; } var Dailicontacts = cDocumet.QuerySelectorAll("span").Where(m => m.Id == "_notice_content_noticeAgency-agentLinkTel"); if (Dailicontacts != null && Dailicontacts.ToList().Count > 0) { var Dailicontact = Dailicontacts.First(); project.Dailicontact = Dailicontact.TextContent; } var zhuanjias = cDocumet.QuerySelectorAll("div").Where(m => m.ClassName == "noticeBidResult-noticeBidResult _notice_content_noticeBidResult-noticeBidResult expert dynamic-form-editor"); if (zhuanjias != null && zhuanjias.ToList().Count > 0) { var zhuanjia = zhuanjias.First(); project.Zhuanjia = zhuanjia.TextContent.Trim();//OuterHtml } } project.Creater = "111"; project.Createtime = zhengfuProject.Createtime; project.Modifier = project.Creater; project.Modifytime = project.Createtime; project.RecStatus = "A"; _ccontext1.Projects.Add(project); if (cDocumet != null) { //var cDocumet = contentList.First(); var table1 = cDocumet.QuerySelectorAll("div").Where(m => m.Id == "_notice_content_noticeBidResult-noticeBidResult"); if (table1 != null && table1.ToList().Count > 0) { var table = table1.First().QuerySelectorAll("table"); if (table != null && table.ToList().Count > 0) { for (int i = 0; i < table.Length; i++) { var td = table[i].QuerySelectorAll("td"); if (td.Length >= 3) { var projectzhongbiao = new Projectzhongbiao(); projectzhongbiao.ZhongbiaoId = Guid.NewGuid().ToString(); projectzhongbiao.ProjectId = project.Id; if ( !string.IsNullOrWhiteSpace(td[0].TextContent) && td[0].TextContent.Trim().Length > 500) { projectzhongbiao.Names = td[0].TextContent.Trim().Substring(0,500); } else { projectzhongbiao.Names = td[0].TextContent.Trim(); } projectzhongbiao.Price = td[2].TextContent.Trim(); _ccontext1.Projectzhongbiaos.Add(projectzhongbiao); } } } } } string url = $"{Program.api_domain}/webcrawler/_doc/" + zhengfuProject.Id; string result = string.Empty; Uri postUrl = new Uri(url); eswebcrawler eswebcrawler1 = new eswebcrawler(); eswebcrawler1.Id = zhengfuProject.Id; eswebcrawler1.noticeTime = zhengfuProject.NoticeTime.ToString("yyyy-MM-dd HH:mm:ss"); eswebcrawler1.openTenderTime = zhengfuProject.OpenTenderTime.HasValue ? zhengfuProject.OpenTenderTime.Value.ToString("yyyy-MM-dd HH:mm:ss") : null; eswebcrawler1.sheng = zhengfuProject.Sheng; eswebcrawler1.shengName = ShengName; eswebcrawler1.city = zhengfuProject.City; eswebcrawler1.cityName = CityName; eswebcrawler1.regionCode = zhengfuProject.RegionCode; eswebcrawler1.regionName = regionName; eswebcrawler1.cgfs = zhengfuProject.Cgfs; eswebcrawler1.cgfsName = cgfsName; eswebcrawler1.gglx = zhengfuProject.Gglx; eswebcrawler1.gglxName = gglxName; eswebcrawler1.openTenderCode = zhengfuProject.OpenTenderCode; eswebcrawler1.title = zhengfuProject.Title; eswebcrawler1.shorttitle = zhengfuProject.Shorttitle; eswebcrawler1.pageurl = zhengfuProject.Pageurl; eswebcrawler1.pingmu = zhengfuProject.Pingmu; eswebcrawler1.pingmuName = ""; eswebcrawler1.purchaser = zhengfuProject.Purchaser; eswebcrawler1.budget = zhengfuProject.Budget.HasValue ? zhengfuProject.Budget.Value.ToString() : ""; eswebcrawler1.agency = zhengfuProject.Agency; eswebcrawler1.agencyCode = zhengfuProject.AgencyCode; eswebcrawler1.modifyTime = zhengfuProject.Modifytime.ToString("yyyy-MM-dd HH:mm:ss"); string requestJson = JsonConvert.SerializeObject(eswebcrawler1); using (HttpContent httpContent = new StringContent(requestJson)) { httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json"); using (HttpClient httpClient = new HttpClient()) { httpClient.Timeout = TimeSpan.FromSeconds(60); HttpResponseMessage responseMessage = httpClient.PutAsync(postUrl, httpContent).Result; result = responseMessage.Content.ReadAsStringAsync().Result; } } Newtonsoft.Json.Linq.JObject jobject = (Newtonsoft.Json.Linq.JObject)JsonConvert.DeserializeObject(result); if (jobject["error"] == null && jobject["_shards"]["successful"].ToString() == "1") { } else { throw new Exception("保存数据库出错!"); } _ccontext1.SaveChanges(); _ccontext.SaveChanges(); } } } if (currPage * pageSize >= sichuan.total) { break; } else { currPage += 1; } Thread.CurrentThread.Join(1000 * 20);//阻止设定时间 } } logg.WriteLog("四川省中标公告 获取完成", "四川"); //翻页信息 currPage = 1; pageSize = 10; //开始访问 采购公告 logg.WriteLog("四川省更正公告 开始获取", "四川"); while (true) { logg.WriteLog(currPage.ToString(), "四川"); string address = "https://zfcg.scsczt.cn/freecms/rest/v1/notice/selectInfoMoreChannel.do?&siteId=94c965cc-c55d-4f92-8469-d5875c68bd04&channel=c5bff13f-21ca-4dac-b158-cb40accd3035&currPage=" + currPage + "&pageSize=" + pageSize + "¬iceType=00103®ionCode=&purchaseManner=&title=&openTenderCode=&purchaser=&agency=&purchaseNature=&operationStartTime=" + operationStartTime + "&operationEndTime=&selectTimeName=noticeTime&cityOrArea="; using (HttpClient client = new HttpClient()) { client.Timeout = TimeSpan.FromSeconds(60); HttpResponseMessage response = client.GetAsync(address).Result; var res = response.Content.ReadAsStringAsync().Result; sichuanjieshou sichuan = JsonConvert.DeserializeObject(res); //保存项目到sqlserveer和elasticsearch if (sichuan.data != null && sichuan.data.Count > 0) { foreach (var sichuanjieshoudtl in sichuan.data) { var pageurl1 = sichuanpageurll + sichuanjieshoudtl.pageurl; var notime = sichuanjieshoudtl.noticeTime.ToString("yyyy-MM-dd"); var notimestart = DateTime.Parse(notime); var notimeend = notimestart.AddDays(1); var zhengfuProjectCount = _ccontext.ZhengfuProjects.Count(x => (x.RecStatus == "A" && x.Pageurl == pageurl1) || (x.RecStatus == "A" && x.Title == sichuanjieshoudtl.title && x.Gglx == "04" && x.NoticeTime >= notimestart && x.NoticeTime < notimeend)); if (zhengfuProjectCount <= 0) { var zhengfuProject = new ZhengfuProject(); zhengfuProject.Id = Guid.NewGuid().ToString(); zhengfuProject.Gglx = "04"; string gglxName = "更正公告"; zhengfuProject.NoticeTime = sichuanjieshoudtl.noticeTime; zhengfuProject.OpenTenderTime = sichuanjieshoudtl.openTenderTime; zhengfuProject.RegionCode = sichuanjieshoudtl.regionCode; string regionName = sichuanjieshoudtl.regionName; zhengfuProject.Sheng = "510000"; string ShengName = "四川省"; string CityName = ""; if ("510001" == sichuanjieshoudtl.regionCode) { zhengfuProject.RegionCode = ""; regionName = ""; zhengfuProject.City = "510001"; CityName = "省本级"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5101")) { zhengfuProject.City = "510100"; CityName = "成都市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5103")) { zhengfuProject.City = "510300"; CityName = "自贡市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5104")) { zhengfuProject.City = "510400"; CityName = "攀枝花市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5105")) { zhengfuProject.City = "510500"; CityName = "泸州市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5106")) { zhengfuProject.City = "510600"; CityName = "德阳市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5107")) { zhengfuProject.City = "510700"; CityName = "绵阳市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5108")) { zhengfuProject.City = "510800"; CityName = "广元市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5109")) { zhengfuProject.City = "510900"; CityName = "遂宁市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5110")) { zhengfuProject.City = "511000"; CityName = "内江市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5111")) { zhengfuProject.City = "511100"; CityName = "乐山市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5113")) { zhengfuProject.City = "511300"; CityName = "南充市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5114")) { zhengfuProject.City = "5114"; CityName = "眉山市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5115")) { zhengfuProject.City = "511500"; CityName = "宜宾市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5116")) { zhengfuProject.City = "511600"; CityName = "广安市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5117")) { zhengfuProject.City = "511700"; CityName = "达州市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5118")) { zhengfuProject.City = "511800"; CityName = "雅安市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5119")) { zhengfuProject.City = "511900"; CityName = "巴中市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5120")) { zhengfuProject.City = "512000"; CityName = "资阳市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5132")) { zhengfuProject.City = "513200"; CityName = "阿坝州"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5133")) { zhengfuProject.City = "513300"; CityName = "甘孜州"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5134")) { zhengfuProject.City = "513400"; CityName = "凉山州"; } string cgfsName = ""; switch (sichuanjieshoudtl.purchaseManner) { case "1": zhengfuProject.Cgfs = "1"; cgfsName = "公开招标"; break; case "2": zhengfuProject.Cgfs = "2"; cgfsName = "邀请招标"; break; case "3": zhengfuProject.Cgfs = "5"; cgfsName = "竞争性谈判"; break; case "4": zhengfuProject.Cgfs = "4"; cgfsName = "询价"; break; case "5": zhengfuProject.Cgfs = "7"; cgfsName = "单一来源"; break; case "6": zhengfuProject.Cgfs = "3"; cgfsName = "竞争性磋商"; break; case "9": zhengfuProject.Cgfs = "10"; cgfsName = "其他"; break; default: zhengfuProject.Cgfs = "10"; cgfsName = "其他"; break; } zhengfuProject.OpenTenderCode = sichuanjieshoudtl.openTenderCode; zhengfuProject.Title = sichuanjieshoudtl.title; zhengfuProject.Shorttitle = sichuanjieshoudtl.shorttitle; zhengfuProject.Pageurl = sichuanpageurll + sichuanjieshoudtl.pageurl; zhengfuProject.Purchaser = sichuanjieshoudtl.purchaser; if (!string.IsNullOrWhiteSpace(sichuanjieshoudtl.budget)) { zhengfuProject.Budget = decimal.Parse(sichuanjieshoudtl.budget); } zhengfuProject.Agency = sichuanjieshoudtl.agency; zhengfuProject.AgencyCode = sichuanjieshoudtl.agencyCode; zhengfuProject.Content = sichuanjieshoudtl.content.Replace("\r", string.Empty).Replace("\n", string.Empty).Replace("\t", string.Empty).Replace(@"\", string.Empty); zhengfuProject.RecStatus = "A"; zhengfuProject.Creater = "1"; zhengfuProject.Createtime = DateTime.Now; zhengfuProject.Modifier = "1"; zhengfuProject.Modifytime = zhengfuProject.Createtime; _ccontext.ZhengfuProjects.Add(zhengfuProject); string url = $"{Program.api_domain}/webcrawler/_doc/" + zhengfuProject.Id; string result = string.Empty; Uri postUrl = new Uri(url); eswebcrawler eswebcrawler1 = new eswebcrawler(); eswebcrawler1.Id = zhengfuProject.Id; eswebcrawler1.noticeTime = zhengfuProject.NoticeTime.ToString("yyyy-MM-dd HH:mm:ss"); eswebcrawler1.openTenderTime = zhengfuProject.OpenTenderTime.HasValue ? zhengfuProject.OpenTenderTime.Value.ToString("yyyy-MM-dd HH:mm:ss") : null; eswebcrawler1.sheng = zhengfuProject.Sheng; eswebcrawler1.shengName = ShengName; eswebcrawler1.city = zhengfuProject.City; eswebcrawler1.cityName = CityName; eswebcrawler1.regionCode = zhengfuProject.RegionCode; eswebcrawler1.regionName = regionName; eswebcrawler1.cgfs = zhengfuProject.Cgfs; eswebcrawler1.cgfsName = cgfsName; eswebcrawler1.gglx = zhengfuProject.Gglx; eswebcrawler1.gglxName = gglxName; eswebcrawler1.openTenderCode = zhengfuProject.OpenTenderCode; eswebcrawler1.title = zhengfuProject.Title; eswebcrawler1.shorttitle = zhengfuProject.Shorttitle; eswebcrawler1.pageurl = zhengfuProject.Pageurl; eswebcrawler1.pingmu = zhengfuProject.Pingmu; eswebcrawler1.pingmuName = ""; eswebcrawler1.purchaser = zhengfuProject.Purchaser; eswebcrawler1.budget = zhengfuProject.Budget.HasValue ? zhengfuProject.Budget.Value.ToString() : ""; eswebcrawler1.agency = zhengfuProject.Agency; eswebcrawler1.agencyCode = zhengfuProject.AgencyCode; eswebcrawler1.modifyTime = zhengfuProject.Modifytime.ToString("yyyy-MM-dd HH:mm:ss"); string requestJson = JsonConvert.SerializeObject(eswebcrawler1); using (HttpContent httpContent = new StringContent(requestJson)) { httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json"); using (HttpClient httpClient = new HttpClient()) { httpClient.Timeout = TimeSpan.FromSeconds(60); HttpResponseMessage responseMessage = httpClient.PutAsync(postUrl, httpContent).Result; result = responseMessage.Content.ReadAsStringAsync().Result; } } Newtonsoft.Json.Linq.JObject jobject = (Newtonsoft.Json.Linq.JObject)JsonConvert.DeserializeObject(result); if (jobject["error"] == null && jobject["_shards"]["successful"].ToString() == "1") { } else { throw new Exception("保存数据库出错!"); } _ccontext.SaveChanges(); } } } if (currPage * pageSize >= sichuan.total) { break; } else { currPage += 1; } Thread.CurrentThread.Join(1000 * 20);//阻止设定时间 } } logg.WriteLog("四川省更正公告 获取完成", "四川"); //翻页信息 currPage = 1; pageSize = 10; //开始访问 采购公告 logg.WriteLog("四川省废标公告 开始获取", "四川"); while (true) { logg.WriteLog(currPage.ToString(), "四川"); string address = "https://zfcg.scsczt.cn/freecms/rest/v1/notice/selectInfoMoreChannel.do?&siteId=94c965cc-c55d-4f92-8469-d5875c68bd04&channel=c5bff13f-21ca-4dac-b158-cb40accd3035&currPage=" + currPage + "&pageSize=" + pageSize + "¬iceType=001004,001006®ionCode=&purchaseManner=&title=&openTenderCode=&purchaser=&agency=&purchaseNature=&operationStartTime=" + operationStartTime + "&operationEndTime=&selectTimeName=noticeTime&cityOrArea="; using (HttpClient client = new HttpClient()) { client.Timeout = TimeSpan.FromSeconds(60); HttpResponseMessage response = client.GetAsync(address).Result; var res = response.Content.ReadAsStringAsync().Result; sichuanjieshou sichuan = JsonConvert.DeserializeObject(res); //保存项目到sqlserveer和elasticsearch if (sichuan.data != null && sichuan.data.Count > 0) { foreach (var sichuanjieshoudtl in sichuan.data) { var pageurl1 = sichuanpageurll + sichuanjieshoudtl.pageurl; var notime = sichuanjieshoudtl.noticeTime.ToString("yyyy-MM-dd"); var notimestart = DateTime.Parse(notime); var notimeend = notimestart.AddDays(1); var zhengfuProjectCount = _ccontext.ZhengfuProjects.Count(x => (x.RecStatus == "A" && x.Pageurl == pageurl1) || (x.RecStatus == "A" && x.Title == sichuanjieshoudtl.title && x.Gglx == "11" && x.NoticeTime >= notimestart && x.NoticeTime < notimeend)); if (zhengfuProjectCount <= 0) { var zhengfuProject = new ZhengfuProject(); zhengfuProject.Id = Guid.NewGuid().ToString(); zhengfuProject.Gglx = "11"; string gglxName = "废标公告"; zhengfuProject.NoticeTime = sichuanjieshoudtl.noticeTime; zhengfuProject.OpenTenderTime = sichuanjieshoudtl.openTenderTime; zhengfuProject.RegionCode = sichuanjieshoudtl.regionCode; string regionName = sichuanjieshoudtl.regionName; zhengfuProject.Sheng = "510000"; string ShengName = "四川省"; string CityName = ""; if ("510001" == sichuanjieshoudtl.regionCode) { zhengfuProject.RegionCode = ""; regionName = ""; zhengfuProject.City = "510001"; CityName = "省本级"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5101")) { zhengfuProject.City = "510100"; CityName = "成都市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5103")) { zhengfuProject.City = "510300"; CityName = "自贡市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5104")) { zhengfuProject.City = "510400"; CityName = "攀枝花市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5105")) { zhengfuProject.City = "510500"; CityName = "泸州市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5106")) { zhengfuProject.City = "510600"; CityName = "德阳市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5107")) { zhengfuProject.City = "510700"; CityName = "绵阳市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5108")) { zhengfuProject.City = "510800"; CityName = "广元市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5109")) { zhengfuProject.City = "510900"; CityName = "遂宁市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5110")) { zhengfuProject.City = "511000"; CityName = "内江市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5111")) { zhengfuProject.City = "511100"; CityName = "乐山市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5113")) { zhengfuProject.City = "511300"; CityName = "南充市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5114")) { zhengfuProject.City = "5114"; CityName = "眉山市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5115")) { zhengfuProject.City = "511500"; CityName = "宜宾市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5116")) { zhengfuProject.City = "511600"; CityName = "广安市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5117")) { zhengfuProject.City = "511700"; CityName = "达州市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5118")) { zhengfuProject.City = "511800"; CityName = "雅安市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5119")) { zhengfuProject.City = "511900"; CityName = "巴中市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5120")) { zhengfuProject.City = "512000"; CityName = "资阳市"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5132")) { zhengfuProject.City = "513200"; CityName = "阿坝州"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5133")) { zhengfuProject.City = "513300"; CityName = "甘孜州"; } else if (sichuanjieshoudtl.regionCode.StartsWith("5134")) { zhengfuProject.City = "513400"; CityName = "凉山州"; } string cgfsName = ""; switch (sichuanjieshoudtl.purchaseManner) { case "1": zhengfuProject.Cgfs = "1"; cgfsName = "公开招标"; break; case "2": zhengfuProject.Cgfs = "2"; cgfsName = "邀请招标"; break; case "3": zhengfuProject.Cgfs = "5"; cgfsName = "竞争性谈判"; break; case "4": zhengfuProject.Cgfs = "4"; cgfsName = "询价"; break; case "5": zhengfuProject.Cgfs = "7"; cgfsName = "单一来源"; break; case "6": zhengfuProject.Cgfs = "3"; cgfsName = "竞争性磋商"; break; case "9": zhengfuProject.Cgfs = "10"; cgfsName = "其他"; break; default: zhengfuProject.Cgfs = "10"; cgfsName = "其他"; break; } zhengfuProject.OpenTenderCode = sichuanjieshoudtl.openTenderCode; zhengfuProject.Title = sichuanjieshoudtl.title; zhengfuProject.Shorttitle = sichuanjieshoudtl.shorttitle; zhengfuProject.Pageurl = sichuanpageurll + sichuanjieshoudtl.pageurl; zhengfuProject.Purchaser = sichuanjieshoudtl.purchaser; if (!string.IsNullOrWhiteSpace(sichuanjieshoudtl.budget)) { zhengfuProject.Budget = decimal.Parse(sichuanjieshoudtl.budget); } zhengfuProject.Agency = sichuanjieshoudtl.agency; zhengfuProject.AgencyCode = sichuanjieshoudtl.agencyCode; zhengfuProject.Content = sichuanjieshoudtl.content.Replace("\r", string.Empty).Replace("\n", string.Empty).Replace("\t", string.Empty).Replace(@"\", string.Empty); zhengfuProject.RecStatus = "A"; zhengfuProject.Creater = "1"; zhengfuProject.Createtime = DateTime.Now; zhengfuProject.Modifier = "1"; zhengfuProject.Modifytime = zhengfuProject.Createtime; _ccontext.ZhengfuProjects.Add(zhengfuProject); var projects = _ccontext1.Projects.Where(x => x.RecStatus == "A" && x.Number == zhengfuProject.OpenTenderCode && x.Fblx != null ).ToList(); if (projects.Count > 0) { foreach (var project in projects) { project.Fblx = "停止评审"; } var parser = new HtmlParser(); var document = parser.ParseDocument(zhengfuProject.Content); var contentList = document.All.Where(m => m.Id == "noticeArea"); var cDocumet = contentList.First(); var Numberss = cDocumet.QuerySelectorAll("p"); foreach (var Number in Numberss) { if (Number != null && Number.TextContent.Contains("废标理由")) { if (Number.TextContent.IndexOf("span") >= 0) { var Fbyy = Number.QuerySelector("span"); foreach (var project in projects) { project.Fbyy = Fbyy.TextContent.Trim(); project.Fblx = "停止评审"; } } } if (Number != null && Number.TextContent.Contains("终止原因")) { if(Number.TextContent.IndexOf("span") >= 0) { var Fbyy = Number.QuerySelector("span"); foreach (var project in projects) { project.Fbyy = Fbyy.TextContent.Trim(); project.Fblx = "停止评审"; } } } } var feibiaoliyous = cDocumet.QuerySelectorAll("div").Where(m => m.Id == "_notice_content_reason-reason"); if (feibiaoliyous != null && feibiaoliyous.ToList().Count > 0) { var feibiaoliyou = feibiaoliyous.First(); foreach (var project in projects) { project.Fbyy = feibiaoliyou.TextContent.Replace("\n", "").Replace("\t", ""); project.Fblx = "终止采购"; } } _ccontext1.SaveChanges(); } string url = $"{Program.api_domain}/webcrawler/_doc/" + zhengfuProject.Id; string result = string.Empty; Uri postUrl = new Uri(url); eswebcrawler eswebcrawler1 = new eswebcrawler(); eswebcrawler1.Id = zhengfuProject.Id; eswebcrawler1.noticeTime = zhengfuProject.NoticeTime.ToString("yyyy-MM-dd HH:mm:ss"); eswebcrawler1.openTenderTime = zhengfuProject.OpenTenderTime.HasValue ? zhengfuProject.OpenTenderTime.Value.ToString("yyyy-MM-dd HH:mm:ss") : null; eswebcrawler1.sheng = zhengfuProject.Sheng; eswebcrawler1.shengName = ShengName; eswebcrawler1.city = zhengfuProject.City; eswebcrawler1.cityName = CityName; eswebcrawler1.regionCode = zhengfuProject.RegionCode; eswebcrawler1.regionName = regionName; eswebcrawler1.cgfs = zhengfuProject.Cgfs; eswebcrawler1.cgfsName = cgfsName; eswebcrawler1.gglx = zhengfuProject.Gglx; eswebcrawler1.gglxName = gglxName; eswebcrawler1.openTenderCode = zhengfuProject.OpenTenderCode; eswebcrawler1.title = zhengfuProject.Title; eswebcrawler1.shorttitle = zhengfuProject.Shorttitle; eswebcrawler1.pageurl = zhengfuProject.Pageurl; eswebcrawler1.pingmu = zhengfuProject.Pingmu; eswebcrawler1.pingmuName = ""; eswebcrawler1.purchaser = zhengfuProject.Purchaser; eswebcrawler1.budget = zhengfuProject.Budget.HasValue ? zhengfuProject.Budget.Value.ToString() : ""; eswebcrawler1.agency = zhengfuProject.Agency; eswebcrawler1.agencyCode = zhengfuProject.AgencyCode; eswebcrawler1.modifyTime = zhengfuProject.Modifytime.ToString("yyyy-MM-dd HH:mm:ss"); string requestJson = JsonConvert.SerializeObject(eswebcrawler1); using (HttpContent httpContent = new StringContent(requestJson)) { httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json"); using (HttpClient httpClient = new HttpClient()) { httpClient.Timeout = TimeSpan.FromSeconds(60); HttpResponseMessage responseMessage = httpClient.PutAsync(postUrl, httpContent).Result; result = responseMessage.Content.ReadAsStringAsync().Result; } } Newtonsoft.Json.Linq.JObject jobject = (Newtonsoft.Json.Linq.JObject)JsonConvert.DeserializeObject(result); if (jobject["error"] == null && jobject["_shards"]["successful"].ToString() == "1") { } else { throw new Exception("保存数据库出错!"); } _ccontext.SaveChanges(); } } } if (currPage * pageSize >= sichuan.total) { break; } else { currPage += 1; } Thread.CurrentThread.Join(1000 * 20);//阻止设定时间 } } logg.WriteLog("四川省废标公告 获取完成", "四川"); //保存最后更新时间 if (updatetime != null) { updatetime.Updatetime1 = DateTime.Now.AddDays(-1); _ccontext.SaveChanges(); } else { updatetime = new Updatetime(); updatetime.Id = Guid.NewGuid().ToString(); updatetime.Sheng = "四川省"; updatetime.Updatetime1 = DateTime.Now.AddDays(-1); _ccontext.Updatetimes.Add(updatetime); _ccontext.SaveChanges(); } } catch (Exception ex) { logg.WriteLog(ex.Message, "四川"); logg.WriteLog(ex.StackTrace, "四川"); logg.WriteLog(ex.ToString(), "四川"); } finally { } } } }