빅데이터/데이터분석 with C#

뉴스 크롤링 라이브러리 만들기1

언제나휴일 2020. 5. 4. 20:32
반응형

 

검색한 뉴스가 몇 개 있는지 조사하는 부분까지 구현합니다.

뉴스 검색 API를 사용하기 위한 초반 작업입니다.

 

소스 코드

  • 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<News> 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);
        
        }
    }
}

 

반응형