안녕하세요. 언제나 휴일에 언휴예요.
이번 강의부터 뉴스 크롤링 라이브러리를 만들거예요.
이번 강의는 검색을 요청하면 검색한 뉴스가 몇 개 있는지 얻어오는 부분까지 구현합니다.
크롤링 초반 작업을 작성한다고 보시면 되겠죠.
작성할 부분을 테스트를 하기 위해 콘솔 프로그램으로 제작한 후에 라이브러리로 바꿀 거예요.
데이터분석 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); } } }