D4Vinci/Scrapling

현대 웹을 위한 적응형 웹 스크래핑 프레임워크

개발 재료맘대로 써도 됨 · BSD-3-Clause자동화·워크플로우난이도
64,015+1,217이번 주6,2535Python
데모·홈페이지 열기scrapling.readthedocs.io
중간맛 분석

Python 기반 프레임워크로 HTTP 요청, 스텔스 브라우저(StealthyFetcher), 동적 콘텐츠 로딩(DynamicFetcher)을 지원합니다. Scrapy처럼 Spider 클래스로 대규모 크롤링을 구성할 수 있으며, CSS/XPath 선택자는 adaptive=True로 설정하면 웹사이트 업데이트 후에도 자동으로 요소를 재찾습니다. 동시성 제어, 일시 중지/재개, 프록시 회전, robots.txt 준수 등이 내장되어 있고, 응답 캐싱으로 개발 중 서버 부하를 줄일 수 있습니다. 바로 실행 가능하며 JSON/JSONL 내보내기 지원합니다.

이런 레포예요

이럴 때 쓰면 좋아요

  • 웹사이트 구조 변경 후에도 자동으로 대응하는 장기 실행 크롤러 구축
  • Cloudflare 보호 사이트에서 대규모 데이터 수집
  • AI 에이전트/MCP 서버를 통한 웹 데이터 자동 추출

핵심 기능

적응형 선택자(웹사이트 변경 자동 감지)안티봇 우회(Cloudflare Turnstile 기본 지원)Spider 프레임워크(동시성·일시중지·재개·프록시 회전)

대안 대비 차별점

웹사이트 구조 변경을 자동으로 학습해 선택자를 재배치하는 적응형 파싱이 Scrapy 같은 기존 도구와의 핵심 차별점입니다.

준비물
  • Python 3.7+
바로 시작하기
  1. 설치
pip install scrapling
  1. 기본 페치
from scrapling.fetchers import StealthyFetcher
StealthyFetcher.adaptive = True
p = StealthyFetcher.fetch('https://example.com', headless=True, network_idle=True)
products = p.css('.product', adaptive=True)
  1. Spider 정의
from scrapling.spiders import Spider, Response

class MySpider(Spider):
  name = "demo"
  start_urls = ["https://example.com/"]

  async def parse(self, response: Response):
      for item in response.css('.product'):
          yield {"title": item.css('h2::text').get()}
  1. Spider 실행
MySpider().start()
별 추이 · 7일
64,015+1,217 / 7일
활용성 · 따라 만들기 좋은가
따라 하기 좋음샘플 점수 52/100
  • 관대한 라이선스
  • 테스트 있음
  • 예제 디렉토리
  • 최근 활동
  • AGENTS.md
  • llms.txt
  • 템플릿

🟢 최근 활동 있음 · 2024년 생성

AI가 README 기반으로 요약했습니다 · 원문 보기