NGMsoftware

NGMsoftware
로그인 회원가입
  • 매뉴얼
  • 팁 앤 테크
  • 매뉴얼

    팁과 테크니컬 노하우를 확인하세요.

    팁 앤 테크

    팁과 테크니컬 노하우를 확인하세요.

    본 사이트의 컨텐츠는 저작권법의 보호를 받으므로 무단 복사, 게재, 배포 등을 금합니다.

    커스텀 3. 네이버 실시간 검색어 크롤링하기. (Crawling Naver real-time search terms.)

    페이지 정보

    본문

    안녕하세요. 엔지엠소프트웨어입니다. 네이버 실시간 검색어 크롤링하기 마지막 시간입니다. 단순한 예제인데... 강좌를 작성하는건 엄청난 시간과 노력이 들어가는군요ㅠㅠ;

    nk47Rhz.png

     

     

    이전 강좌들을 잘 따라하셨다면 Visual Studio 2019를 실행하고 솔루션을 열어주세요~ 그리고 ①활성 솔루션 구성을 Release로 변경해줍니다.

    tGW7ywF.png

     

     

    솔루션 탐색기에서 솔루션을 선택하고 우클릭 후 솔루션 다시 빌드를 클릭하세요.

    ZszCX0b.png

     

     

    하단의 출력창을 보면 컴파일이 성공한것을 알 수 있습니다.

    2QWBdvI.png

     

     

    테스트를 위한 런처(TestApp)를 구성합니다. 아래 그림을 참고해서 작업하세요.

    ①Form1.cs를 더블 클릭하여 디자인 보기로 이동

    ②도구 상자에서 Button 선택

    ③Form1로 드래그 드롭하여 추가

    ④button1 컨트롤을 더블 클릭하여 이벤트 추가

    yFrYVb4.png

     

     

    아래는 button1의 이벤트 핸들러 코드입니다.

            private void button1_Click(object sender, EventArgs e)
            {
                // 크롤링에 사용할 커스텀 모듈의 인스턴스를 생성합니다.
                var crawling = new CustomToolCrawlingModule.CrawlingModel();
                // 크롤링할 웹사이트 주소를 추가하세요. 네이버 실시간 검색어 페이지는 아래와 같습니다.
                // 만약, 다른 사이트를 크롤링하려면 주소가 바껴야겠죠^^?
                crawling.WebSiteAddress = "https://datalab.naver.com/keyword/realtimeList.naver?where=main";
                // 네이버 실검이 들어있는 노드의 그룹입니다. 아래 내용은 xpath 값입니다.
                crawling.NodeXPath1 = @"//*[@id='content']/div/div[2]/div[2]/div[2]/div/div/ul[1]";
                // 네이버 실검이 들어있는 노드의 클래스입니다.
                crawling.NodeXPath2 = "item_title";
                // 파일로 저장할때 검색어를 줄바꿈해줍니다. 그래야 보기가 좋죠~
                crawling.LineBreak = true;
                // 저장될 텍스트 파일의 경로를 입력하세요. 사용자마다 경로는 다를겁니다.
                crawling.TextFile = @"C:\Users\ngmas\Desktop\네이버 실검.txt";
                crawling.Execute();
            }

     

     

    7줄로 네이버 실시간 검색어를 크롤링하는 프로그램을 만들었습니다. 물론... 한줄로 만들수도 있습니다-_-; 가끔 유튜브 보면 한줄로 뭔가 다 되는것처럼 하는 어그로들이 많아서 저도 따라해보죠~

            private void button1_Click(object sender, EventArgs e)
            {
                //// 크롤링에 사용할 커스텀 모듈의 인스턴스를 생성합니다.
                //var crawling = new CustomToolCrawlingModule.CrawlingModel();
                //// 크롤링할 웹사이트 주소를 추가하세요. 네이버 실시간 검색어 페이지는 아래와 같습니다.
                //// 만약, 다른 사이트를 크롤링하려면 주소가 바껴야겠죠^^?
                //crawling.WebSiteAddress = "https://datalab.naver.com/keyword/realtimeList.naver?where=main";
                //// 네이버 실검이 들어있는 노드의 그룹입니다. 아래 내용은 xpath 값입니다.
                //crawling.NodeXPath1 = @"//*[@id='content']/div/div[2]/div[2]/div[2]/div/div/ul[1]";
                //// 네이버 실검이 들어있는 노드의 클래스입니다.
                //crawling.NodeXPath2 = "item_title";
                //// 파일로 저장할때 검색어를 줄바꿈해줍니다. 그래야 보기가 좋죠~
                //crawling.LineBreak = true;
                //// 저장될 텍스트 파일의 경로를 입력하세요. 사용자마다 경로는 다를겁니다.
                //crawling.TextFile = @"C:\Users\ngmas\Desktop\네이버 실검.txt";
                //crawling.Execute();
    
                // 한줄로...
                new CrawlingModel() { 
                    WebSiteAddress = "https://datalab.naver.com/keyword/realtimeList.naver?where=main", 
                    NodeXPath1 = @"//*[@id='content']/div/div[2]/div[2]/div[2]/div/div/ul[1]", 
                    NodeXPath2 = "item_title", 
                    LineBreak = true, 
                    TextFile = @"C:\Users\ngmas\Desktop\네이버 실검.txt" }
                .Execute();
            }

     

     

    보기좋게 하려고 일부러 구간별로 줄바꿈은 넣었지만, 한줄로 이어붙여도 실행하는데 아무런 문제가 없습니다. F5를 눌러서 실행해보세요. 아래와 같은 프로그램이 실행되죠? button1을 클릭해보세요.

    x83dtvG.png

     

     

    바탕화면에 네이버 실검.txt 파일이 정상적으로 생성되었습니다.

    EdZlirO.png

     

     

    1~20위까지 실시간 검색어가 저장되어 있네요.

    3H0Xpy8.png

     

     

    이렇게해서 네이버 실시간 검색어를 텍스트파일로 저장하는 방법에 대해 알아보았습니다. 주기적으로 크롤링해서 데이터를 누적시켜야 한다면 NGM의 스케줄러 또는 타이머를 이용해서 엑셀이나 데이타베이스에 날짜별로 저장시킬 수 있습니다. 여러가지 로직도 적용시킬 수 있겠죠? 실제 핵심 코딩량으로 보면 30줄도 되지 않습니다. 이렇게 간단하게 프로그래밍할 수 있게된데는 필요한 모듈 또는 라이브라리를 미리 만들어서 배포해준 개발자들의 도움이 컸습니다. 제경우는 유료와 무료로 나뉘어져 있죠. 특별한 노력이 필요하지 않는것들은 무료로 풀고 있습니다. 무료로 재능기부를 하는 모든 개발자들이 겪는  문제가 몇가지 있습니다. 다들 생각하시는 그거 맞아요~

    pNdJx41.jpg

     

     

    따뜻한 댓글과 감사 인사라도 남겨주시면 개발자는 더 힘이 납니다~

    완성된 모듈은 아래 링크에서 다운로드 받을 수 있습니다.

    http://ngmsoftware.com/bbs/board.php?bo_table=product3&wr_id=27

    • 네이버 공유하기
    • 페이스북 공유하기
    • 트위터 공유하기
    • 카카오스토리 공유하기
    추천1 비추천0

    댓글목록

    등록된 댓글이 없습니다.