AngleSharp

웹 스크래핑 / 크롤링

AngleSharp 는 .NET에서 사용하는 HTML / CSS 파싱 & DOM 처리 라이브러리입니다.
쉽게 말하면 브라우저처럼 HTML을 해석해서 DOM 구조로 만들어주는 엔진이라고 보면 됩니다.

AngleSharp는 C#으로 작성된 오픈 소스 HTML 파서 및 DOM 구현 라이브러리이다. 웹 브라우저의 렌더링 엔진 일부를 재현하여 HTML, XML, SVG, CSS 등을 .NET 환경에서 파싱하고 조작할 수 있게 한다. 주로 웹 스크래핑, 자동화 테스트, HTML 분석에 활용된다.

주요 정보

  • 언어: C# (.NET 플랫폼용)
  • 라이선스: MIT License
  • 개발자: Florian Rappl 및 커뮤니티
  • 최초 공개: 2013년경
  • 공식 저장소: GitHub – AngleSharp

기능 및 구조

AngleSharp은 HTML5 파싱 알고리즘을 구현하여 문서를 DOM(Document Object Model) 트리로 변환한다. 또한 CSS 선택자, 쿼리, 탐색 기능을 지원해 자바스크립트 없이도 문서 내용을 프로그래밍적으로 조작할 수 있다. 일부 확장 패키지(예: AngleSharp.Css, AngleSharp.Js)는 스타일시트 해석과 스크립팅 환경을 보강한다.

사용 예시 및 활용 분야

개발자는 AngleSharp을 통해 HTML 문서를 파싱한 후, CSS 선택자로 특정 요소를 찾거나 콘텐츠를 분석할 수 있다. 이 기능은 웹 크롤러, 이메일 템플릿 처리기, 테스트 자동화 도구, 서버 측 렌더링 환경 등에서 널리 사용된다.

핵심 기능

1) HTML 파싱 (브라우저 수준)

  • 깨진 HTML도 자동 보정해서 파싱
  • <div><span> 같은 비정상 구조도 정상 DOM으로 변환
  • 실제 브라우저처럼 동작 (HTML5 표준 기반)

2) DOM 조작 (JavaScript 없이)

  • QuerySelector, QuerySelectorAll 지원 (CSS Selector 기반)
  • jQuery 느낌으로 사용 가능

3) CSS 파싱 & 스타일 분석

  • CSS 규칙을 읽고 적용 가능
  • 스타일 계산 (AngleSharp.Css 패키지 필요)

4) 웹 스크래핑 / 크롤링

  • HTTP 요청 + HTML 파싱 → 데이터 추출
  • 크롤러 구현에 많이 사용됨

5) JavaScript 실행 (옵션)

  • 기본은 JS 실행 안함
  • AngleSharp.Js 추가하면 일부 JS 실행 가능

PreMailer.Net + AngleSharp 조합 많이 씀
→ CSS를 inline 스타일로 변환할 때 내부적으로 AngleSharp 사용

다른 라이브러리와 비교

항목AngleSharpHtmlAgilityPack
HTML5 표준✅ 완벽 지원❌ 제한적
CSS Selector✅ 강력❌ 약함
속도⚖️ 중간⚡ 빠름
정확도⭐⭐⭐⭐⭐⭐⭐⭐
현대 웹 대응

👉 결론

  • 정확성 중요 → AngleSharp
  • 속도/간단 → HtmlAgilityPack