3P by xguru 2시간전 | ★ favorite | 댓글과 토론
  • Python Scrapy의 아키텍처를 Go 언어의 성능을 활용하여 네이티브 구현한 고성능 웹 스크래핑 프레임워크
  • goscrapy startproject 명령어 한 줄로 프로젝트 구조, Go 모듈 초기화, 의존성 해결까지 자동 스캐폴딩
  • Go의 동시성 모델 기반 고처리량 병렬 스크래핑, 재시도·쿠키 관리·동시성 처리를 프레임워크가 자동 관리
  • 실패 시 지수 백오프(exponential back-off) 를 적용한 자동 재시도
  • Spider → Engine → Scheduler → Worker → Middleware → HTTP Client로 이어지는 명확한 데이터 흐름 아키텍처
    • Spider가 요청을 Engine에 전달하고, Engine이 Scheduler에 스케줄링
    • Scheduler가 Worker Queue에서 가용 워커를 확보한 뒤 작업을 Worker에 전달
    • Worker가 Executor를 트리거하고, Executor가 Middlewares를 거쳐 HTTP Client로 요청 전송
    • 응답은 역순으로 Middlewares → Executor → Spider 콜백으로 반환
    • Spider가 레코드를 yield하면 Engine이 PipelineManager를 통해 DB, CSV, 파일 등으로 데이터 내보내기 수행
  • CSV, JSON, MongoDB, Google Sheets, Firebase 등 다양한 내보내기 파이프라인을 기본 내장
  • Azure TLS, Dupefilter 등 빌트인 미들웨어 제공, 거의 모든 계층을 교체·확장 가능한 설계
  • 체이닝 가능한 CSS/XPath 셀렉터로 유연한 HTML 파싱
  • settings.go에서 미들웨어와 파이프라인을 중앙 집중식으로 설정, spider.go는 파싱 로직에만 집중하는 깔끔한 구조
  • Google Maps 스크래퍼, Fingerprint Spoofing(봇 탐지 우회), TUI 실시간 모니터링 등 실전 예제 제공
  • 현재 v0.x 개발 단계, 안정적인 v1.0을 향해 Core API 지속 개선 중
  • Business Source License(BSL) : 상용 제품에 자유롭게 사용 가능하나 프레임워크 자체를 경쟁 서비스로 재판매하는 것은 제한