사이트가 바뀌어도 안 깨지는 스크래퍼
파이스크래피, 자기치유 셀렉터에 MCP 서버까지 붙인 수집 도구
웹 수집 자동화의 진짜 비용은 만드는 시간이 아니라 사이트가 개편될 때마다 고치는 시간이다. 오픈소스 툴킷 파이스크래피(PyScrappy)는 그 지점을 정면으로 노렸다. 요소를 한 번 기억해두고 사이트 마크업이 바뀌면 유사도로 다시 찾아내는 자기치유 셀렉터를 내세우고, 같은 수집 기능을 MCP 서버로도 노출해 클로드(Claude)나 커서(Cursor) 같은 에이전트가 도구처럼 호출하게 한다.
무슨 일인가
파이스크래피는 MIT 라이선스로 공개된 파이썬(Python) 패키지다. 저장소 기준 별 178개, 포크 72개, 커밋 287개로 어느 정도 축적이 있는 프로젝트다. 설치는 패키지 하나면 끝이고, 필요한 기능만 선택 설치하는 구조를 택했다. 자바스크립트로 그려지는 페이지를 위한 브라우저 백엔드, 표 형태 분석을 위한 데이터프레임 지원, 에이전트 연동용 MCP 서버, 차단 우회용 스텔스 기능이 각각 별도 옵션으로 갈라져 있다.
기본 수집기는 URL만 주면 본문 텍스트·링크·이미지·표·메타데이터를 구조화해 돌려준다. 여기에 위키백과, 영화 정보, 주식, 뉴스, 깃허브, 대형 쇼핑몰, 유튜브 등 20종이 넘는 전용 수집기가 내장돼 있다.
핵심 짚어보기
네 가지를 눈여겨볼 만하다. 첫째는 앞서 말한 자기치유 셀렉터다. 흔한 실패는 스크래퍼가 에러를 내는 상황이 아니라, 구조가 바뀐 뒤에도 조용히 빈 값을 받아오면서 며칠간 잘못된 데이터가 쌓이는 상황인데 이 기능이 겨냥하는 지점이 바로 거기다.
둘째는 결과물 형태다. 수집 결과를 마크다운·제이슨·데이터프레임으로 바로 변환할 수 있어, 프롬프트에 붙일 형태로 만드는 중간 코드가 거의 필요 없다. 셋째는 MCP 서버 모드다. 수집기를 에이전트 도구로 등록해두면 대화 중에 URL을 던지고 필요한 표만 뽑으라고 지시하는 식의 사용이 가능해진다.
넷째는 운영 장치들이다. 여러 URL을 병렬로 처리하는 기능, 지수 백오프 재시도, 도메인별 요청 속도 제한, 프록시와 외부 수집 API 연동, 브라우저처럼 보이게 하는 TLS 지문 위장, 코드 없이 URL을 파일로 저장하는 명령줄 도구, 전체 타입 힌트까지 갖췄다.
1인기업 실전 적용 포인트
- 경쟁사와 공급사 가격 페이지를 하루 한 번 훑어 마크다운 파일로 떨어뜨리는 크론 작업부터 시작한다. 명령줄 한 줄이면 코드 없이 붙일 수 있다.
- 뉴스·콘텐츠 자동 발행 파이프라인의 앞단 수집기를 이것으로 교체하고, 결과를 마크다운으로 변환해 그대로 생성 프롬프트에 넣는다.
- MCP 서버로 등록해 리서치 중 즉석 수집에 쓴다. 매번 수집 스크립트를 새로 쓰는 시간이 사라진다.
- 도메인별 요청 속도 제한과 재시도 정책을 처음부터 걸어둔다. 차단당한 뒤 복구하는 비용이 훨씬 크다.
전망과 주의점
자기치유는 마법이 아니라 유사도 추정이다. 엉뚱한 요소를 집어올 수 있으므로 수집 결과의 개수와 형식을 검사하는 검증 단계를 반드시 함께 둬야 한다. 지문 위장과 스텔스 기능은 사실상 차단 우회이므로 대상 사이트 약관, 저작권, 개인정보 문제와 직결된다. 공개 데이터, 내 데이터, 허락받은 데이터로 범위를 좁혀 쓰는 것이 안전하다.
출처: 깃허브 mldsveda/PyScrappy (https://github.com/mldsveda/PyScrappy)