TL;DR

  • Markdownee는 웹사이트를 크롤링해 Markdown, HTML 또는 일반 텍스트로 저장하는 도구로, TypeScript와 Python 버전 및 호스팅형 Apify Actor를 제공함.
  • 핵심 콘텐츠 추출은 Trafilatura 기반 오픈소스 엔진인 Trafilatura Core가 담당하며, TypeScript 엔진은 Python Trafilatura를 포팅한 구현임.
  • 크롤링은 Crawlee가 처리하고 브라우저 렌더링에는 Playwright를 사용함.
  • 링크 추적, 페이지 수와 깊이, 콘텐츠 범위, 표·링크·이미지·댓글 처리 등을 설정할 수 있으며 이미지 파일 다운로드도 선택 가능함.
  • 브라우저 설치나 API 키 없이 npx 명령으로 시작할 수 있고, Node.js 버전은 22.x의 22.22.2 이상, 24.x의 24.15.0 이상 또는 26 이상임.

Markdownee란?

  • Markdownee는 웹사이트를 크롤링해 콘텐츠를 Markdown, HTML 또는 일반 텍스트로 저장하는 웹 스크래퍼이며, 대형 언어 모델(LLM), 검색·검색증강 파이프라인, 연구 데이터셋에 활용할 수 있음.
  • 따라갈 링크, 페이지 수와 크롤링 깊이, 보존할 페이지 콘텐츠의 범위를 설정할 수 있음.
  • 표, 링크, 이미지, 사용자 댓글의 처리 방식을 각각 제어할 수 있으며, 선택적으로 이미지 파일을 다운로드할 수 있음.

추출 엔진과 크롤링 구성

  • 보일러플레이트 제거에는 Trafilatura를 기반으로 한 오픈소스 추출 엔진 Trafilatura Core를 사용하며, TypeScript와 Python 구현을 제공함.
  • Core는 보일러플레이트를 제거해 주요 콘텐츠를 추출하는 단일 작업에 집중하며, Markdown 변환을 포함한 출력 형식 변환은 다른 패키지가 처리함.
  • TypeScript 엔진은 원본 Python Trafilatura를 포팅한 구현이며, DOM 번역 보조 도구로 go-trafilatura를 사용함. 네이티브 Python 엔진은 해당 TypeScript 포트를 번역한 구현임.
  • Markdownee의 TypeScript와 Python 버전은 각각 해당 언어에 맞는 Trafilatura Core 구현을 사용함.
  • Crawlee가 크롤링을 처리하고, 브라우저 렌더링에는 Playwright를 사용함.
  • 비교 자료에서는 Python Trafilatura, go-trafilatura, Trafilatura Core의 계보, 추출 방식, 입력과 출력, 통합 방식을 비교함.

사용 방법

  • TypeScript와 Python 두 언어 버전을 제공하며, npm CLI, npm 라이브러리, Python 라이브러리를 자체 호스팅하거나 호스팅형 Apify Actor를 이용할 수 있음.
  • 플레이그라운드에서는 한 페이지의 추출 결과를 미리 보고 설정을 조정하며, 여러 페이지 크롤링에 사용할 CLI 명령, 라이브러리 호출 또는 Apify Actor API 호출 코드를 생성할 수 있음.
  • 플레이그라운드는 한 번에 한 페이지만 미리 볼 수 있으며, 여러 페이지를 크롤링하려면 생성된 명령이나 코드를 사용함.
  • 시작 명령은 npx --package=@markdownee/markdownee markdownee fetch로 실행하며, 예시에서는 Wikipedia의 웹 스크래핑 페이지를 cheerio 크롤러로 가져와 Markdown 파일인 page.md로 저장함.
  • --crawler-type cheerio는 일반 HTTP로 페이지를 가져오며, 전체 사이트 크롤링이나 특정 출력 형식이 필요하면 플레이그라운드에서 명령을 구성할 수 있음.
  • 시작 시 브라우저 설치나 API 키는 필요하지 않으며, Node.js 22.x에서는 22.22.2 이상, 24.x에서는 24.15.0 이상 또는 26 이상을 사용함.