From 1cd307b45ae2cc327fc45b5fefc76a84a4df0fc4 Mon Sep 17 00:00:00 2001 From: mjjo53 Date: Thu, 7 Jun 2018 18:09:36 +0900 Subject: [PATCH] =?UTF-8?q?=EA=B3=B5=EC=8B=9C=EC=97=90=EC=84=9C=20?= =?UTF-8?q?=EB=B6=80=EC=A0=95=EB=AC=B8=EA=B5=AC=20=EC=B2=B4=ED=81=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Crawler.cs | 40 ++++++++++++++-------------------------- NewsForm.cs | 7 ++++++- 2 files changed, 20 insertions(+), 27 deletions(-) diff --git a/Crawler.cs b/Crawler.cs index 702927f..d455248 100644 --- a/Crawler.cs +++ b/Crawler.cs @@ -312,8 +312,6 @@ namespace NewsCrawler using(StreamReader reader = new StreamReader(dataStream, Encoding.GetEncoding("utf-8"))) { string responseFromServer = WebUtility.HtmlDecode(reader.ReadToEnd()); - if (responseFromServer.Contains("정정")) - Console.WriteLine(""); HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument(); doc.LoadHtml(responseFromServer); @@ -394,8 +392,6 @@ namespace NewsCrawler using(StreamReader reader = new StreamReader(dataStream, Encoding.GetEncoding("utf-8"))) { string responseFromServer = WebUtility.HtmlDecode(reader.ReadToEnd()); - if (responseFromServer.Contains("정정")) - Console.WriteLine(""); dynamic jObj = Newtonsoft.Json.JsonConvert.DeserializeObject(responseFromServer); string strBody = jObj["reportBody"]; @@ -471,8 +467,6 @@ namespace NewsCrawler using (StreamReader reader = new StreamReader(dataStream, Encoding.GetEncoding("utf-8"))) { string responseFromServer = WebUtility.HtmlDecode(reader.ReadToEnd()); - if (responseFromServer.Contains("정정")) - Console.WriteLine(""); dynamic jObj = Newtonsoft.Json.JsonConvert.DeserializeObject(responseFromServer); string strBody = jObj["reportBody"]; @@ -550,8 +544,6 @@ namespace NewsCrawler using (StreamReader reader = new StreamReader(dataStream, Encoding.GetEncoding("utf-8"))) { string responseFromServer = WebUtility.HtmlDecode(reader.ReadToEnd()); - if (responseFromServer.Contains("정정")) - Console.WriteLine(""); dynamic jObj = Newtonsoft.Json.JsonConvert.DeserializeObject(responseFromServer); string strBody = jObj["reportBody"]; @@ -624,8 +616,6 @@ namespace NewsCrawler using(StreamReader reader = new StreamReader(dataStream, Encoding.GetEncoding("utf-8"))) { string responseFromServer = WebUtility.HtmlDecode(reader.ReadToEnd()); - if (responseFromServer.Contains("정정")) - Console.WriteLine(""); dynamic jObj = Newtonsoft.Json.JsonConvert.DeserializeObject(responseFromServer); string strBody = jObj["reportBody"]; @@ -699,8 +689,6 @@ namespace NewsCrawler using(StreamReader reader = new StreamReader(dataStream, Encoding.GetEncoding("utf-8"))) { string responseFromServer = WebUtility.HtmlDecode(reader.ReadToEnd()); - if (responseFromServer.Contains("정정")) - Console.WriteLine(""); dynamic jObj = Newtonsoft.Json.JsonConvert.DeserializeObject(responseFromServer); string strBody = jObj["reportBody"]; @@ -785,8 +773,6 @@ namespace NewsCrawler using(StreamReader reader = new StreamReader(dataStream, Encoding.GetEncoding("utf-8"))) { string responseFromServer = WebUtility.HtmlDecode(reader.ReadToEnd()); - if (responseFromServer.Contains("정정")) - Console.WriteLine(""); dynamic jObj = Newtonsoft.Json.JsonConvert.DeserializeObject(responseFromServer); string strErrCode = jObj["err_code"]; @@ -812,16 +798,20 @@ namespace NewsCrawler string strURL = "http://m.dart.fss.or.kr/html_mdart/MD1007.html?rcpNo=" + data["rcp_no"]; string strViewURL = "http://m.dart.fss.or.kr/viewer/main.st?rcpNo=" + data["rcp_no"]; - if (Config.CheckSupplyContract() && strCodeName != "" && strTitle.Contains("공급계약체결") && m_Listener.IsDuplicatedURL(strURL) == false) - ReadSupplyContract(bInitial, strCodeName, strViewURL); - else if(Config.CheckRevenue() && strCodeName != "" && strTitle.Contains("영업(잠정)실적(공정공시)") && m_Listener.IsDuplicatedURL(strURL) == false) - ReadRevenue(bInitial, strCodeName, strViewURL); - else if(Config.CheckRightsIssue() && strCodeName != "" && strTitle.Contains("유상증자결정") && m_Listener.IsDuplicatedURL(strURL) == false) - ReadRightsIssue(bInitial, strCodeName, strViewURL); - else if(Config.CheckPatent() && strCodeName != "" && strTitle.Contains("특허권취득") && m_Listener.IsDuplicatedURL(strURL) == false) - ReadPatent(bInitial, strCodeName, strViewURL); - else if(Config.CheckProfitChange() && strCodeName != "" && m_ProfitChange.IsMatch(strTitle) && m_Listener.IsDuplicatedURL(strURL) == false) - ReadProfitChange(bInitial, strCodeName, strViewURL); + TextCondition.RESULT MatchResult = m_Listener.CheckMatch(strTitle); + if(MatchResult.m_enType != TextCondition.TYPE.NEGATIVE) + { + if (Config.CheckSupplyContract() && strCodeName != "" && strTitle.Contains("공급계약체결") && m_Listener.IsDuplicatedURL(strURL) == false) + ReadSupplyContract(bInitial, strCodeName, strViewURL); + else if (Config.CheckRevenue() && strCodeName != "" && strTitle.Contains("영업(잠정)실적(공정공시)") && m_Listener.IsDuplicatedURL(strURL) == false) + ReadRevenue(bInitial, strCodeName, strViewURL); + else if (Config.CheckRightsIssue() && strCodeName != "" && strTitle.Contains("유상증자결정") && m_Listener.IsDuplicatedURL(strURL) == false) + ReadRightsIssue(bInitial, strCodeName, strViewURL); + else if (Config.CheckPatent() && strCodeName != "" && strTitle.Contains("특허권취득") && m_Listener.IsDuplicatedURL(strURL) == false) + ReadPatent(bInitial, strCodeName, strViewURL); + else if (Config.CheckProfitChange() && strCodeName != "" && m_ProfitChange.IsMatch(strTitle) && m_Listener.IsDuplicatedURL(strURL) == false) + ReadProfitChange(bInitial, strCodeName, strViewURL); + } m_Listener.InsertItem(strTitle, strCodeName, "", DateTime.ParseExact(strTime, "HH:mm", CultureInfo.CurrentCulture), @@ -917,8 +907,6 @@ namespace NewsCrawler using(StreamReader reader = new StreamReader(dataStream, Encoding.GetEncoding("utf-8"))) { string responseFromServer = WebUtility.HtmlDecode(reader.ReadToEnd()); - if (responseFromServer.Contains("정정")) - Console.WriteLine(""); HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument(); doc.LoadHtml(responseFromServer); diff --git a/NewsForm.cs b/NewsForm.cs index 771ff5e..28164a3 100644 --- a/NewsForm.cs +++ b/NewsForm.cs @@ -226,9 +226,14 @@ namespace NewsCrawler m_PriceCheckList.Enqueue(CheckData); } + public TextCondition.RESULT CheckMatch(string strTitle) + { + return m_Condition.Match(strTitle); + } + void ProcessSearchAndBuy(NEWS_ITEM NewsItem) { - TextCondition.RESULT MatchResult = m_Condition.Match(NewsItem.m_strTitle); + TextCondition.RESULT MatchResult = CheckMatch(NewsItem.m_strTitle); switch(MatchResult.m_enType) { case TextCondition.TYPE.NEGATIVE: