paulpierre/markdown-crawler

A multithreaded 🕸️ web crawler that recursively crawls a website and creates a 🔽 markdown file for each page, designed for LLM RAG

What it solves

markdown-crawler는 웹사이트 콘텐츠를 대형 언어 모델(LLM)에 적합한 형식으로 변환하는 과정을 단순화하도록 설계되었습니다. HTML이 난잡해 LLM이 처리하고 청크화하기 어려운 문제를, 사이트를 재귀적으로 크롤링하고 각 페이지를 깔끔하고 구조화된 markdown 파일로 변환함으로써 해결합니다.

How it works

이 도구는 지정된 깊이까지 사이트를 재귀적으로 크롤링하는 멀티스레드 방식을 사용합니다. HTML 파싱에는 BeautifulSoup을, HTML을 markdown으로 변환하는 데는 markdownify 라이브러리를 활용합니다. 사용자는 CLI 또는 Python 코드 내 라이브러리 형태로 도구를 구성할 수 있으며, CSS 선택자를 사용해 대상 콘텐츠를 정의하고, 특정 경로를 제외하며, 브라우저와 유사한 User‑Agent을 사용해 기본 JavaScript 검사를 우회할 수 있습니다.

Who it’s for

이 도구는 주로 RAG(검색 증강 생성) 파이프라인을 구축하는 개발자, LLM 파인튜닝용 데이터셋을 만드는 사람, 혹은 AI 에이전트를 위한 전문 지식 베이스를 구축하는 사람들을 위한 것입니다.

Highlights

  • Multithreaded Crawling: 병렬 처리를 통한 빠른 데이터 수집.
  • RAG-Ready: 헤더, 문단, 문장 단위로 청크화하기 쉽게 문서를 정규화.
  • Customizable Filtering: 대상 콘텐츠에 대한 CSS 선택자, 도메인 매칭, 경로 제외 지원.
  • Resumable Scraping: 도구가 중단된 지점부터 스크래핑을 계속할 수 있음.
  • CLI and Library Support: 독립 실행형 명령줄 도구로도, Python 프로젝트에 통합된 라이브러리로도 사용 가능.