기술

사이트가 바뀌어도 안 깨지는 크롤러, 파이썬 Scrapling

적응형 요소 추적, 한 줄 마크다운 변환, MCP 서버까지 갖춘 파이썬 웹 스크래핑 프레임워크 Scrapling. 설치 두 줄, 기본 코드, 스파이더, 속도 측정, 지켜야 할 것을 정리했습니다.

D4Vinci/Scrapling은 요청 한 번부터 사이트 전체 크롤링까지 다루는 파이썬 웹 스크래핑 프레임워크입니다. BSD-3-Clause 라이선스이고, 2026년 11월 7일 기준 깃허브 스타 98,835개, 그 주에만 8,372개가 늘었습니다.

무엇이 다른가

  • 적응형 요소 추적: 한 번 찾은 요소를, 사이트 구조가 바뀐 뒤에도 비슷함을 따져 다시 찾습니다. 선택자가 깨질 때마다 고치는 일이 줄어듭니다.
  • 한 줄 마크다운: page.markdown()이 페이지를 LLM이 읽기 좋은 깨끗한 마크다운으로 바꿉니다. 사이트 전체를 마크다운 묶음으로 모으는 ContentSpider 템플릿도 있습니다.
  • MCP 서버와 에이전트 스킬: Claude 같은 에이전트가 Scrapling으로 페이지를 읽고, 화면을 찍고, 데이터를 뽑습니다.
  • 스파이더: Scrapy와 비슷한 API, 동시 크롤링, 도메인별 속도 조절, Ctrl+C로 멈췄다 이어 하기(crawldir), JSON·CSV 내보내기.

설치

pip install "scrapling[fetchers]"
scrapling install

pip install scrapling만 하면 파서만 깔립니다. 페이지를 가져오는 Fetcher나 스파이더를 쓰려면 위 두 줄이 필요하고, 두 번째 줄이 브라우저를 받습니다. MCP 서버는 pip install "scrapling[ai]"로 더합니다.

기본 코드

from scrapling.fetchers import Fetcher

page = Fetcher.get('https://quotes.toscrape.com/')
quotes = page.css('.quote .text::text').getall()
print(page.markdown()[:500])

스파이더로 키우면 이렇습니다. README 예시는 명언 10개를 quotes.json에 저장합니다.

from scrapling.spiders import Spider, Response

class QuotesSpider(Spider):
    name = "quotes"
    start_urls = ["https://quotes.toscrape.com/"]

    async def parse(self, response: Response):
        for quote in response.css('.quote'):
            yield {"text": quote.css('.text::text').get(),
                   "author": quote.css('.author::text').get()}

result = QuotesSpider().start()
result.items.to_json("quotes.json")

속도

README의 측정(요소 5,000개에서 글자 뽑기, 100회 넘게 잰 평균)입니다. 저장소가 직접 잰 값이라는 점은 감안하세요.

라이브러리시간Scrapling 대비
Scrapling1.99ms1배
Parsel/Scrapy2.06ms1.04배
Raw lxml2.56ms1.29배
BeautifulSoup + lxml1,562ms약 785배

지킬 것

  • README의 면책 조항은 교육·연구용이며, 데이터 수집과 개인정보 관련 국내외 법을 지키라고 적었습니다.
  • 스파이더의 robots_txt_obey 옵션을 켜면 robots.txt의 Disallow, Crawl-delay를 따릅니다. 기본은 꺼져 있으니 직접 켜세요.
  • 사이트 약관이 자동 수집을 막는지 먼저 보세요. 로그인이 필요한 페이지나 개인정보는 긁지 않는 편이 안전합니다.

오늘 할 일

설치 두 줄로 깔고, 즐겨 보는 공개 페이지 하나를 page.markdown()으로 뽑아 보세요. 결과를 Claude에게 붙여 요약을 시키면 쓸모가 바로 보입니다.

쇼츠로 보기

이 글은 비치콤버스 쇼츠 No.47의 짝 글입니다. 짧은 주소 beachcombers.co.kr/s/47.

김현빈 Developer & Writer

기술, 포스팅 관련 질문, 프로젝트 협업 등 연락주시면 언제든지 회신 드립니다.

esc

↑↓ 고르기↵ 열기? 단축키

해변에서 주운 것

읽으러 가기 →
guest@beachcombers — zsh

단축키

⌘K 또는 /
글·작업·개발일지 찾기
R
해변 산책 — 아무 글 하나 줍기
`
터미널 열기
←→
쪽 넘기기 (휠·스와이프도 됩니다)
?
이 안내
esc
닫기