Scrapling
무엇인가
Scrapling은 Python으로 작성된 웹 스크래핑·크롤링 프레임워크다. 단일 HTTP 요청 처리와 다중 세션 동시 크롤을 같은 API 표면에서 다룬다. 선택자 기반 파서, fetcher, 스파이더 런타임, 프록시 로테이션, CLI, MCP 서버가 한 패키지에 들어 있다.
어떻게 동작하나
파서는 페이지에서 뽑아낸 요소의 위치와 주변 구조를 기억하고, 사이트가 개편되면 저장된 특징을 다시 대조해 요소를 재탐색한다. Spider는 start_urls와 async parse 콜백, Request/Response 객체로 정의하며, 세션 ID로 요청을 일반 HTTP 세션과 스텔스 헤드리스 브라우저 세션에 나눠 보낸다. 크롤 상태는 체크포인트로 저장돼 Ctrl+C로 중단한 뒤 재시작하면 이어서 진행된다. spider.stream()은 수집 항목을 도착 순서대로 내보내며 실시간 통계를 함께 전달한다.
무엇과 다른가
Scrapy 계열 크롤러는 선택자가 깨지면 사용자가 다시 작성해야 하고, 안티봇 차단은 별도 미들웨어로 붙여야 한다. Scrapling은 요소 재탐색을 파서 수준에서 처리하고 Cloudflare Turnstile 같은 차단을 fetcher 기본 동작으로 통과시킨다. AutoThrottle은 도메인별 응답 속도로 지연을 정하고, 차단이나 rate limit이 걸리면 지연을 두 배로 늘리거나 Retry-After 값을 따르고, 풀리면 다시 줄인다.
어떻게 쓰나
설치는 pip install scrapling. 이후 Python 코드에서 fetcher와 Spider를 불러 쓰거나 CLI로 실행한다. robots_txt_obey 플래그로 Disallow·Crawl-delay·Request-rate 지시문을 도메인별 캐시와 함께 준수할 수 있고, 개발 모드에서는 첫 실행 응답을 디스크에 캐시해 이후 실행에서 재생한다. MCP 인터페이스로 LLM 에이전트에 연결할 수 있다.
전제와 한계
Python 패키지이므로 Python 실행 환경이 필요하다. 헤드리스 브라우저 기반 fetcher는 브라우저 바이너리와 그 의존성이 설치돼 있어야 동작한다. robots.txt 준수는 기본값이 아니라 옵션 플래그로 켜는 방식이며, 안티봇 우회 기능의 사용은 대상 사이트의 이용 약관과 법규를 따르는 것이 전제다.
유사 도구
- scrapy파이썬으로 웹사이트를 순회하며 구조화된 데이터를 추출하는 비동기 스크래핑 프레임워크다. 스파이더·미들웨어·아이템 파이프라인으로 수집 흐름을 조립한다.
- crawleeNode.js용 웹 스크래핑·브라우저 자동화 라이브러리다. HTTP와 헤드리스 브라우저를 같은 인터페이스로 다루고 프록시 회전과 요청 큐를 내장한다.
- firecrawl웹 페이지를 검색·스크래핑·크롤링해 LLM이 읽는 Markdown이나 구조화 JSON으로 변환하는 API 서버이자 CLI다.
- wigoloAI 에이전트에 검색·fetch·크롤·추출·캐시를 MCP 한 표면으로 제공하는 로컬 우선 웹 계층이다. API 키 없이 공개 엔진을 직접 호출하고 결과를 ~/.wigolo/에 캐시한다.