Refactoring Amazon Scraper: From 500 to 150 Lines with Scrap
AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

500줄에서 150줄로: Amazon 스크래퍼를 Scrapy 프로젝트로 리팩토링한 방법

프로그래밍/소프트웨어 개발

웹 개발

대상자

- 웹 스크래핑 개발자: 스크래핑 스크립트의 유지보수성 개선 및 도구 활용 방법

- 난이도: 중간 수준 (Scrapy 기초 지식 필요)

핵심 요약

  • Scrapy 프레임워크를 사용하여 단일 스크립트를 모듈화된 프로젝트로 리팩토링
  • ScrapeOps 통합으로 프록시 관리 및 실시간 모니터링 자동화
  • 코드 줄 수 534 → 150 줄 감소, 성공률 70% → 95% 향상

섹션별 세부 요약

1. 기존 스크립트의 문제점

  • 수동 프록시 관리 및 에러 처리로 인한 복잡성 증가
  • 수동 크롤링 로직으로 인한 유지보수 어려움
  • CSV 내보내기 및 가격 추출 로직의 비결정성

2. Scrapy 프로젝트 구조

  • 모듈화된 스파이더 분리 (Search Spider, Product Spider)
  • settings.py에서 중앙 집중식 설정 관리
  • requirements.txt로 의존성 관리

3. Scrapy 및 ScrapeOps의 핵심 기능

  • Scrapy 제공 기능:

- 자동 재시도 (exponential backoff)

- 동시 요청 및 요청 제한

- 다중 포맷 내보내기 (CSV, JSON)

  • ScrapeOps 제공 기능:

- 프록시 회전 및 IP 관리

- 실시간 모니터링 대시보드

- 요청 성공률 추적

4. 리팩토링 전후 비교

  • 코드 줄 수: 534 → 150 줄
  • 성공률: 70% → 95%
  • 디버깅 시간: 시간 → 분 단위로 감소
  • 확장성: 제한적 → 무제한

결론

  • Scrapy + ScrapeOps 통합을 통해 유지보수성과 확장성을 극대화
  • 프록시 관리 및 실시간 모니터링은 ScrapeOps의 무료 계층으로도 가능
  • 프로젝트 초기 설정: git clone, pip install -r requirements.txt, scrapy crawl 명령어 실행