뉴스 크롤링 라이브러리 만들기 1 [데이터분석 with C#]

안녕하세요. 언제나 휴일에 언휴예요.

이번 강의부터 뉴스 크롤링 라이브러리를 만들거예요.

이번 강의는 검색을 요청하면 검색한 뉴스가 몇 개 있는지 얻어오는 부분까지 구현합니다.

크롤링 초반 작업을 작성한다고 보시면 되겠죠.

작성할 부분을 테스트를 하기 위해 콘솔 프로그램으로 제작한 후에 라이브러리로 바꿀 거예요.

데이터분석 with C#은 동영상 강의 중심으로 제작하고 결과물 소스는 사이트에 게시할 거예요.

  • NaverNews.cs
using System.Collections.Generic;
using System.IO;
using System.Net;
using System.Xml;

namespace 네이버_뉴스_크롤링_라이브러리_제작
{
    public class NaverNews
    {
        public string SRC
        {
            get;
            set;
        }
        public string ID
        {
            get;
            set;
        }
        public string Secret
        {
            get;
            set;
        }
        public NaverNews(string id,string secret)
        {
            ID = id;
            Secret = secret;
        }                
        public int Find(string src)
        {
            SRC = src;
            Stream stream;
            string url = string.Format("https://openapi.naver.com/v1/search/news.xml?query={0}&sort=date", src);
            XmlDocument xdoc = MakeDocument(url, out stream);
            XmlNode node = xdoc.SelectSingleNode("rss");
            XmlNode n = node.SelectSingleNode("channel");
            int total = int.Parse(n.SelectSingleNode("total").InnerText);
            stream.Close();
            return total;
        }

        private XmlDocument MakeDocument(string url, out Stream stream)
        {
            WebRequest request = null;
            request = WebRequest.Create(url);
            request.Headers.Add("X-Naver-Client-Id", ID);
            request.Headers.Add("X-Naver-Client-Secret", Secret);

            WebResponse response = request.GetResponse();
            stream = response.GetResponseStream();
            XmlDocument xdoc = new XmlDocument();
            xdoc.Load(stream);
            return xdoc;
        }

        public List FindNews(int start, int display)
        {
            return null;
        }
    }
}
  • News.cs
namespace 네이버_뉴스_크롤링_라이브러리_제작
{
    public class News
    {
    }
}
  • Program.cs
//                                                                                                                                           ehpub.co.kr
//                                                                                                                                데이터분석 with C#
//네이버 뉴스 크롤링 라이브러리 v0.1 제작하기

using System;

namespace 네이버_뉴스_크롤링_라이브러리_제작
{
    class Program
    {
        static void Main(string[] args)
        {
            string id = "[네이버 개발자센터 발급 - 응용 ID]";
            string secret = "[네이버 개발자센터 발급 - Secret]";
            NaverNews nn = new NaverNews(id, secret);
            int total = nn.Find("코로나");
            Console.WriteLine(total);
        
        }
    }
}