본문 바로가기

C#

[C#] 네이버주식을 활용해서 삼성전자 주가 가져오기

반응형

최근에 주식관련해서 지인이 주식/주가 취득하는것도 프로그램으로 만들수있지않은가? 라는 질문을 받아서 이것저것 찾아보면서 한번 정리해 보았습니다.

C#을 사용하여 네이버 주식을 활용하여 삼성전자 주가를 가져오는 예제 코드를 정리해 보겠습니다.
이를 위해 HttpClient를 사용하여 네이버 금융의 주식 시세 페이지에 HTTP 요청을 보내고, HTML 응답을 파싱하여 필요한 정보를 추출하여 원하는 결과를 얻을수 있습니다.

using System;
using System.Net.Http;
using HtmlAgilityPack;

class Program
{
    static async System.Threading.Tasks.Task Main(string[] args)
    {
        string url = "https://finance.naver.com/item/main.naver?code=005930"; // 삼성전자 주식 페이지 URL
        HttpClient httpClient = new HttpClient();
        string html = await httpClient.GetStringAsync(url);

        HtmlDocument htmlDocument = new HtmlDocument();
        htmlDocument.LoadHtml(html);

        // 필요한 정보를 추출하기 위해 XPath를 사용하여 HTML 문서를 탐색
        string xpath = "//div[@class='today']/p[@class='no_today']/em[@class='no_up']/span[@class='blind']";
        HtmlNode node = htmlDocument.DocumentNode.SelectSingleNode(xpath);

        if (node != null)
        {
            string price = node.InnerText.Trim();
            Console.WriteLine("삼성전자 주가: " + price);
        }
        else
        {
            Console.WriteLine("주가 정보를 찾을 수 없습니다.");
        }
    }
}

위의 예제 코드는 HttpClient를 사용하여 네이버 금융의 삼성전자 주식 페이지로 HTTP 요청을 보내고, HtmlAgilityPack 라이브러리를 사용하여 HTML 응답을 파싱합니다. XPath를 사용하여 필요한 정보인 삼성전자 주가를 추출하고 출력합니다.

참고로 이 예제는 네이버 금융의 HTML 구조나 클래스 이름이 변경될 경우 작동하지 않을 수 있습니다. HTML의 변경에 따라 코드를 수정해야 할 수 있습니다.

반응형