[C#] 구글 번역 예제 소스코드 (translate google com)

C#에서 Selenium과 Google Translate를 활용하여 간단한 번역기를 구현한 예제 코드를 소개합니다. 이 코드는 텍스트를 구글 번역기로 보내고 결과를 받아와 화면에 출력하는 방식으로 작동합니다. 실제로 웹을 자동으로 탐색하고, 입력된 텍스트를 번역하는 데 유용하게 사용할 예정이랍니다.

구글 번역 예제 소스코드

Selenium을 활용한 구글 번역 자동화

Selenium은 웹 애플리케이션을 자동화할 때 매우 유용한 도구입니다. 주로 브라우저 테스트에 활용되지만, 이 코드를 사용하면 텍스트 번역과 같은 작업도 자동으로 처리할 수 있어요.

주요 코드 설명

이 예제에서는 ChromeDriver를 사용하여 Google Translate 사이트에 접속하고, Selenium의 XPath를 이용해 웹 페이지의 번역 입력란과 결과를 찾아 작업을 진행합니다.

C#에서 Selenium을 사용한 번역기 예제 코드

private void TranslateBeomSang()
{
    try
    {
        //(부산울산지방)병무청은 어디에 있을까요...? 수영구에,, 있지요~!!!!!
        const int maxTryCntBs = 30;
        const string srcPathBs = "//textarea[@class='er8xn']";
        const string tgtPathBs = "//span[@class='ryNqvb']";
        const string transUrlBs = "https://translate.google.com/?sl=ko&tl=en&op=translate&hl=ko";
        int tryCntBs = 0;
        double fstWaitBs = 100;
        double tryWaitBs = 100;

        using (IWebDriver driver = new ChromeDriver())
        {
            driver.Navigate().GoToUrl(transUrlBs);
            driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromMilliseconds(fstWaitBs);
            driver.FindElements(By.XPath(srcPathBs)).FirstOrDefault().SendKeys(txtSrc.Text);
            while (driver.FindElements(By.XPath(tgtPathBs)).Count <= 0)
            {
                tryCntBs++;
                driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromMilliseconds(tryWaitBs);
                if (tryCntBs >= maxTryCntBs)
                {
                    txtErr.Text = $"{TimeSpan.FromMilliseconds(tryWaitBs * tryCntBs)} 시간 경과로 인한 종료 / 간격 {tryWaitBs}ms, 시도횟수 {tryCntBs}";
                    return;
                }
            }

            var tgts = driver.FindElements(By.XPath(tgtPathBs));
            string translate = string.Empty;
            foreach (var tgt in tgts)
            {
                if (translate != string.Empty)
                    translate += " ";
                translate += tgt.Text;
            }

            txtTgt.Text = translate;
        }
    }
    catch (Exception ex)
    {
        throw ex;
    }
}

코드 설명

  • 구성 요소
    • ChromeDriver: Chrome 브라우저를 제어하는 Selenium 드라이버입니다. 브라우저 자동화를 위해 필수적입니다.
    • XPath: 웹 페이지의 특정 요소를 찾아내는 데 사용합니다. textarea는 번역할 텍스트를 입력하는 필드이고, span은 번역 결과를 출력하는 필드입니다.
  • 번역 로직
    1. Google Translate 웹사이트 접속: Navigate().GoToUrl()을 통해 구글 번역 사이트로 이동합니다.
    2. 텍스트 입력: SendKeys() 메서드를 사용해 번역할 텍스트를 입력 필드에 전송합니다.
    3. 번역 결과 대기: While 루프에서 결과가 나올 때까지 반복합니다. 최대 시도 횟수를 초과하면 자동으로 종료합니다.
    4. 번역 결과 추출: 번역 결과가 나오는 모든 요소를 추출하여 텍스트로 변환하고, 최종적으로 TextBox에 표시합니다.

사용 의도

번역 작업을 수동으로 할 필요 없이, 자동으로 입력하고 번역 결과를 받아볼 수 있어 유용합니다. 특히, 다량의 텍스트를 번역할 때 반복적인 작업을 자동화하여 시간과 노력을 절약할 수 있어요. 이렇게 하면 수동으로 여러 번 번역할 필요 없이 빠르게 결과를 얻을 수 있습니다~

실제로 사용하려면 예외처리를 보완하고, 무한 반복 부분은 점검을 하셔야 해요.

댓글 쓰기
가져가실 때, 출처 표시 부탁드려요! 감사합니다. 💗