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(); } }