반응형

C# 63

HTML Parser 패키지 HtmlAgilityPack 설치 및 HTML BODY 내용 얻어오기

네이버 뉴스를 크롤링 해 온 것은 Open API를 이용한 것이라 XML Document로 파싱할 수 있었습니다. 웹 페이지를 크롤링 해 오려면 HTML 파서를 요구합니다. WebBrowser 컨트롤의 HtmlDocument를 사용할 수 있지만 웹 로봇에는 적합하지 않습니다. Back Ground에서 동작하는 서비스에서 WebBrowser 컨트롤의 HtmlDocument는 동작하지 않습니다. 이러한 이유로 서비스에서 동작 가능한 HTML Parser인 HtmlAgilityPack을 설치할 것입니다. 그리고 이를 이용하여 HTML Body 내용을 얻어오는 실습을 진행합니다. /* http://ehpub.co.kr * 데이터분석 with C# * 웹 사이트 body 내용 얻어오기 * 개발 전 해야 할 일: ..

뉴스 크롤링을 넘어 형태소 분석 구현

이전 강의에서 작성한 뉴스 크롤링 라이브러리를 참조 추가합니다. 그리고 이번 강의에서는 형태소를 분석하여 구현합니다. 참고로 2020년 5월 4일 저녁 7시 30분에 "스포츠"로 검색하였습니다. 1100개의 뉴스의 앞부분을 분석한 BEST50입니다. (한 글자이며 의미없는 것은 필터링하였습니다.) 50. 스포티비뉴스:33 49. KBO:33 48. 손진아:33 47. 첫:34 46. 예정:34 45. 최고:35 44. 활동:35 43. 트랙스:35 42. 교육기부:36 41. 모델:38 40. 72개월:38 39. 스포츠마케팅:39 38. 한도:40 37. 대표적인:40 36. 후원:42 35. 관계자:43 34. 개막전:45 33. 5일:46 32. 사진:47 31. SUV:47 30. 개막:49 29..

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

이전 강의에서 만든 뉴스 크롤링 부분을 라이브러리로 변환하는 작업입니다. 소스 코드는 바뀐 부분이 없으며 XML 주석은 추가로 달았습니다. 소스 코드 News.cs using System; using System.Xml; namespace 네이버_뉴스_크롤링_라이브러리_제작 { /// /// News 클래스 /// public class News { /// /// 기사 제목 /// public string Title { get; private set; } /// /// 기사 url /// public string OriginalLink { get; private set; } /// /// 네이버 사이트 기사 url /// public string Link { get; private set; } /// /..

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

뉴스 기사를 검색 요청하면 실제 기사를 얻어와서 출력하는 부분까지 구현합니다. 소스 코드 News.cs using System; using System.Xml; namespace 네이버_뉴스_크롤링_라이브러리_제작 { public class News { public string Title { get; private set; } public string OriginalLink { get; private set; } public string Link { get; private set; } public string Description { get; private set; } public DateTime Pubdate { get; private set; } public News(string title, stri..

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

검색한 뉴스가 몇 개 있는지 조사하는 부분까지 구현합니다. 뉴스 검색 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; } pub..

1. 개요

자세한 기술 사용법을 설명하기보다 프로그래밍을 하는 과정을 소개하여 숙련을 목적으로 하고 있습니다. 다음을 익힐 수 있어요. .NET 소켓을 이용하여 통신 프로그램을 만드는 방법 Native DLL(Windows API)를 임포트(import)하여 사용하는 방법 프로그램 방식으로 키보드 이벤트 발생하는 방법 프로그램 방식으로 마우스 이벤트 발생하는 방법 화면 이미지 캡쳐 방법

Kakao 번역 API와 .NET 음성 Speech를 이용한 번역 나래이터 만들기[WPF] - 2. 번역 나래이터 라이브러리 제작하기

이전 강의에서 Kakao API를 이용하여 번역 라이브러리를 만들었어요. 이번 강의는 번역 라이브러리와 음성 Speech를 이용하여 번역 나래이터 라이브러리를 만듭니다. WrapSpeechLib 이름의 클래스 라이브러리로 제작합니다. 디폴트로 제공하는 파일이름을 Narrator.cs로 변경합니다. WrapKakaoLib.dll 파일을 참조 추가하세요. System.Speech 어셈블리를 참조 추가하세요. Narrator.cs using System.Collections.Generic; using System.Globalization; using System.Speech.Synthesis; using WrapKakaoLib; namespace WrapSpeechLib { /// /// 번역 나래이터 클래스..

Kakao 번역 API와 .NET 음성 Speech를 이용한 번역 나래이터 만들기[WPF] - 1. Kakao 번역 API를 이용한 라이브러리 제작하기 [C#]

소스 코드 System.Web.Extentions 어셈블리를 참조 추가하세요. KakaoTransAPI.cs using System; using System.Collections.Generic; using System.IO; using System.Net; using System.Text; using System.Web.Script.Serialization; namespace 번역_나래이터___WrapKakaoLib_예광탄 { public enum LanuguageInfo { kr, en, jp, cn, vi, id, ar, bn, de, es, fr, hi, it, ms, nl, pt, ru, th, tr, MAX_LI } public static class KakaoTransAPI { public s..

[.NET C# 프로젝트] 테트리스 만들기 – Part 4(Final). 꽉 찬 라인 지우기, 종료 체크

[C# 프로젝트] 테트리스 만들기 – Part 4(Final). 꽉 찬 줄 지우기, Ending – 언제나 휴일 안녕하세요. 언제나 휴일에 언휴예요. 이번 강의에서는 꽉 찬 라인을 지우는 기능과 종료 조건을 체크하는 부분을 구현합니다. Store 메서드에 라인이 꽉 찼는지 확인하는 메서드를 호출합니다. 이 때 주의할 점은 라인 체크는 아래부터 한다는 것입니다. 벽돌이 4X4공간에 배치하므로 벽돌이 있는 좌표에서 3칸 더 있다는 것을 고려하세요. internal void Store(int bn, int turn, int x, int y) { for (int x ehpub.co.kr 소스 코드 GameRule.cs namespace 도형_이동 { class GameRule { internal const in..

[.NET C# 프로젝트] 테트리스 만들기 Part3. 도형 쌓기

[C# 프로젝트] 테트리스 만들기 – Part 3. 벽돌 쌓기 – 언제나 휴일 안녕하세요. 언휴예요. 이번 강의는 “테트리스 프로젝트 Part 3. 벽돌 쌓기” 입니다. 벽돌을 쌓기 위해서는 Board의 상태를 기억할 형식이 필요합니다. 하나의 개체만 필요해서 단일체로 표현할게요. 벽돌을 쌓기 위한 배열 멤버 필드를 선언하고 배열 개체를 생성하세요. 보드의 특정 영역이 어떤 값인지 확인할 수 있게 속성을 정의합시다. internal int this[int x,int y] { get { return board[x, y]; } ehpub.co.kr 소스 코드 GameRule.cs namespace 도형_이동 { class GameRule { internal const int B_WIDTH = 30; inte..

반응형