.NET Foundation 프로젝트 소개(2): AngleSharp

여러분의 시간을 아낄 수 있는 .NET Foundation의 유용한 프로젝트를 소개하는 시간입니다.

오늘 소개하는 프로젝트는 AngleSharp 인데요, AngleSharp는 .NET 표준 라이브러리 형태로 .NET 애플리케이션에서 사용할 수 있는 최신 웹 도구 기반 .NET 브라우저 엔진 코어 입니다.

image

라이브러리에는 완전히 구현된 HTML5 파서와 L4 쿼리 선택기를 사용하여 탐색할 수 있는 동적 DOM 구현이 포함되어 있습니다. AngleSharp는 W3C 사양과 WHATWG 참조를 완전히 준수하여 에버그린 브라우저와 최대 호환성을 보장합니다.

AngleSharp의 생태계는 통합 CSS3 파서, XPath 지원 및 실험적으로 JavaScript 엔진과 같은 확장 라이브러리를 제공합니다.

AngleSharp의 장기적인 비전은 .NET 애플리케이션 내에서 표준 웹 자산을 다운로드 및 검사, 실행 및 렌더링하기 위한 모든 빌딩 블록을 제공하는 것입니다.

프로젝트 정보 사이트는 다음과 같습니다.
https://anglesharp.github.io/

그리고 프로젝트 소스코드는 이곳에서 살펴볼 수 있고요,

다음의 코드 처럼 사용할 수 있습니다.

var config = Configuration.Default.WithDefaultLoader();
var address = "https://en.wikipedia.org/wiki/List_of_The_Big_Bang_Theory_episodes";
var context = BrowsingContext.New(config);
var document = await context.OpenAsync(address);
var cellSelector = "tr.vevent td:nth-child(3)";
var cells = document.QuerySelectorAll(cellSelector);
var titles = cells.Select(m => m.TextContent);

AngleSharp 문서는 이곳을 통해 확인하실 수 있습니다.

주요 기능은 다음과 같습니다.

  • 이식성 (.NET Standard 2.0 사용)
  • 표준 준수 (에버그린 브라우저와 동일하게 작동)
  • 뛰어난 성능 (대부분의 시나리오에서 유사한 파서를 능가)
  • 확장 가능 (자체 서비스로 확장)
  • 유용한 추상화 (유형 도우미, jQuery와 같은 구성)
  • 완전한 기능의 DOM (목록, 반복자, 이벤트 등 알고 있는 모든 것)
  • 양식 제출 (어디서나 쉽게 로그인)
  • 탐색 (BrowsingContext는 브라우저 탭과 같습니다. .NET에서 제어합니다!)
  • 향상된 LINQ (DOM 요소와 함께 LINQ 사용, 자연스럽게 래퍼 없이 사용)
6개의 좋아요

아…앵글샵이 닷넷파운데이션거 였군요…닷넷에서 크롤링하면 HttpAgilityPack하고 AngleSharp인데 HttpAgilityPack CssSeletor 지원이 안되어서 공식배포 아닌 다른 유저가 만든 확장메서드 Nuget을 받아서 사용해야하는지라 좀 그랬었습니다. 코드 변경하기 싫어서 아직 HttpAgilityPack 쓰고는 있지만 새롭게 크롤링할 일이 생기면 AngleSharp 써야겠다 생각하고 있습니다.

2개의 좋아요

Blazor 연구하면서 bUnit 으로 테스트하고 있는데, bUnitAngleSharp 를 사용하고 있습니다.

1개의 좋아요

더 정확한 표현은 닷넷파운데이션에서 후원하는 것이라고 하는 것이 맞는 것 같습니다. ( 물론 그렇게 아시겠지만요 ^^; ) 이건 비단 저의 표현,

에서 비롯된 것 같기도 하네요. 다음처럼 수정해야겠습니다.

여러분의 시간을 아낄 수 있는 .NET Foundation에서 후원하는 유용한 프로젝트를 소개하는 시간입니다.

^^;

1개의 좋아요