From 6e83ca746352461b4ae7c0dc3a27588384056e7f Mon Sep 17 00:00:00 2001 From: chodadoo Date: Thu, 12 Aug 2021 16:33:37 +0900 Subject: [PATCH] =?UTF-8?q?1.=20=EB=B8=8C=EB=9D=BC=EC=9A=B0=EC=A0=80=20?= =?UTF-8?q?=EC=98=B5=EC=85=98=20=EC=B6=94=EA=B0=80=20=EC=82=BD=EC=9E=85=20?= =?UTF-8?q?=EB=B0=8F=20=EA=B5=90=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SmartSearch/SmartSearch.cs | 43 +++++++++++++++++++++++++++++++------- 1 file changed, 35 insertions(+), 8 deletions(-) diff --git a/SmartSearch/SmartSearch.cs b/SmartSearch/SmartSearch.cs index adb1eb7..e7b8d00 100644 --- a/SmartSearch/SmartSearch.cs +++ b/SmartSearch/SmartSearch.cs @@ -122,6 +122,15 @@ namespace SmartSearch m_WebSocket.OnError += (sender, e) => { Trace.WriteLine(e.Message); + + if (m_Thread.ThreadState != ThreadState.Unstarted) + { + m_Thread.Join(); + } + + Thread.Sleep(m_Random.Next(10000, 30000)); + + m_WebSocket.Close(); }; m_WebSocket.OnClose += (sender, e) => @@ -129,9 +138,11 @@ namespace SmartSearch Trace.WriteLine(e.Reason); if (m_Thread.ThreadState != ThreadState.Unstarted) + { m_Thread.Join(); + } - Thread.Sleep(3000); + Thread.Sleep(m_Random.Next(10000, 30000)); m_WebSocket.Connect(); }; @@ -155,7 +166,12 @@ namespace SmartSearch _ChromeOptions.AddArguments("--disable-popup-blocking"); _ChromeOptions.AddArguments("--disable-default-apps"); _ChromeOptions.AddArguments("--headless"); - _ChromeOptions.AddArguments("user-agent=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36"); + _ChromeOptions.AddArguments("start-maximized"); + _ChromeOptions.AddArguments("--window-size=1920x1080"); + _ChromeOptions.AddArguments("--lang=ko_KR"); + _ChromeOptions.AddArguments("--user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36"); + _ChromeOptions.AddArguments("--app-version=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515"); + _ChromeOptions.BinaryLocation = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) + "\\SmartSearch\\chrome.exe"; // 프록시 설정 @@ -169,10 +185,8 @@ namespace SmartSearch ChromeDriverService _ChromeDriverService = ChromeDriverService.CreateDefaultService(); _ChromeDriverService.HideCommandPromptWindow = true; - - ChromeDriver _ChromeDriver = new ChromeDriver(_ChromeDriverService, _ChromeOptions); - WebDriverWait _WebDriverWait = new WebDriverWait(_ChromeDriver, TimeSpan.FromSeconds(3)); + bool bResult = false; try { @@ -184,6 +198,10 @@ namespace SmartSearch // 스크롤 내린다. // 20 ~ 60초 대기 + ChromeDriver _ChromeDriver = new ChromeDriver(_ChromeDriverService, _ChromeOptions); + + WebDriverWait _WebDriverWait = new WebDriverWait(_ChromeDriver, TimeSpan.FromSeconds(3)); + try { _ChromeDriver.Navigate().GoToUrl(@"https://naver.com"); @@ -271,21 +289,31 @@ namespace SmartSearch { Console.WriteLine("=== 검색어 ==="); Console.WriteLine(ex.Message); + + throw ex; } } + + bResult = true; } catch (Exception ex) { Console.WriteLine("=== 검색어 페어 ==="); Console.WriteLine(ex.Message); + + bResult = false; + } + finally + { + _ChromeDriver.Quit(); } } // 결과 던지기 - using (WebSocket _WebSocket = new WebSocket("ws://api.inrose.com")) + using (WebSocket _WebSocket = new WebSocket(xFF)) { _WebSocket.OnOpen += (sender, e) => { - _WebSocket.Send("{\"GUID\":\"" + Properties.Settings.Default.GUID + "\", \"keyword\":" + _JObject + ", \"done\":true}"); + _WebSocket.Send("{\"GUID\":\"" + Properties.Settings.Default.GUID + "\", \"keyword\":" + _JObject + ", \"done\":" + bResult.ToString().ToLower() + "}"); }; _WebSocket.OnMessage += (sender, e) => { @@ -309,7 +337,6 @@ namespace SmartSearch } finally { - _ChromeDriver.Quit(); } }