Scrapy Python 튜토리얼: 실전 웹 스크래핑 가이드

최종 업데이트: June 16, 2025

이커머스 사이트에서 처음으로 상품 데이터를 모으려고 했던 그 순간을 떠올려보세요. Python 한 줄, 커피 한 잔, 그리고 Amazon 가격 추적기를 만들겠다는 야심만만한 마음으로 시작했지만, 몇 시간 뒤엔 XPath 셀렉터, 페이지네이션, 끝없는 디버깅에 허우적대고 있던 내 모습이 떠오르죠. 웹 데이터를 코드로 다뤄본 적 있다면, 아마 저와 비슷한 감정을 느껴봤을 거예요. 설렘과 ‘이거 왜 이렇게 복잡하지?’가 동시에 밀려오는 그 느낌, 다들 아시죠?

요즘 웹 스크래핑은 데이터 과학자나 개발자만의 전유물이 아닙니다. 영업, 이커머스, 마케팅 등 웹에 흩어진 방대한 정보를 비즈니스 인사이트로 바꾸고 싶은 누구에게나 꼭 필요한 역량이 됐어요. 실제로 웹 스크래핑 소프트웨어 시장은 를 돌파했고, 앞으로도 계속 커질 전망입니다. 물론 Python과 Scrapy 같은 프레임워크가 대규모 맞춤형 스크래핑의 표준이긴 하지만, 초보자에겐 진입장벽이 만만치 않죠. 그래서 이번 글에서는 Scrapy를 실제 Amazon 예시로 단계별로 설명하고, 코딩이 부담스러운 분들을 위해 훨씬 쉬운 AI 기반 대안 도 함께 소개할게요.

Scrapy Python이란? 웹 스크래핑의 만능툴

먼저 기본부터 짚고 넘어가볼까요? Scrapy는 웹 크롤링과 스크래핑을 위해 만들어진 오픈소스 Python 프레임워크입니다. 쉽게 말해, 웹사이트를 돌아다니며 링크를 따라가고, 대량의 구조화된 데이터를 뽑아낼 수 있는 ‘스파이더’를 만드는 만능툴이에요.

Python의 requestsBeautifulSoup만으로도 간단한 스크래핑은 할 수 있지만, Scrapy는 대규모·복잡한 프로젝트에 최적화되어 있습니다. 예를 들면,

  • 수천, 수만 개의 페이지를 한 번에 크롤링해야 할 때 (예: 이커머스 전체 상품)
  • 링크를 자동으로 따라가며 페이지네이션 처리
  • 비동기 방식으로 빠르게 데이터 수집
  • 데이터를 체계적으로 정제하고 내보내기

즉, Scrapy는 웹 스크래핑계의 스위스 아미 나이프 같은 존재죠. 강력하고 유연하지만, 초보자에겐 다소 어렵게 느껴질 수 있습니다.

왜 웹 스크래핑에 Scrapy Python을 쓸까?

개발자와 데이터팀이 Scrapy를 선호하는 이유는 뭘까요? 주요 장점만 정리해볼게요.

활용 사례Scrapy 강점비즈니스 가치
가격 모니터링페이지네이션, 비동기 요청, 스케줄링경쟁사보다 빠른 가격 대응
상품 카탈로그 추출링크 추적, 구조화 데이터 추출상품 DB 구축, 데이터 분석 활용
경쟁사 분석확장성, 사이트 변경에 강함트렌드·신제품·재고 파악
시장 조사데이터 정제/변환 파이프라인리뷰 집계, 감성 분석

Scrapy의 비동기 엔진(Twisted 기반) 덕분에 여러 페이지를 동시에 빠르게 긁어올 수 있습니다. 모듈형 구조라서 프록시, 유저 에이전트, 데이터 정제 등 커스텀 로직을 쉽게 추가할 수 있고, 파이프라인을 통해 원하는 방식으로 데이터를 가공·내보내기가 가능해요(CSV, JSON, DB 등).

Python에 익숙한 팀이라면 Scrapy만큼 강력한 도구도 드물죠. 하지만 비개발자에겐 진입장벽이 높을 수밖에 없습니다.

Scrapy 1.jpeg

Scrapy Python 환경 세팅하기

직접 실습해보고 싶으신가요? Scrapy 설치부터 차근차근 시작해볼게요.

1. Scrapy 설치

Python 3.9 이상이 깔려 있는지 확인한 뒤, 터미널에서 아래 명령어를 입력하세요.

pip install scrapy

설치가 끝나면 버전도 한 번 확인해보세요.

scrapy version

Windows나 Anaconda 환경이라면 가상환경을 쓰는 게 충돌 방지에 좋습니다. Scrapy는 Windows, macOS, Linux 모두 지원해요.

2. Scrapy 프로젝트 만들기

amazonscraper라는 새 프로젝트를 만들어볼게요.

scrapy startproject amazonscraper

아래처럼 폴더 구조가 만들어집니다.

amazonscraper/
├── scrapy.cfg
├── amazonscraper/
│   ├── __init__.py
│   ├── items.py
│   ├── pipelines.py
│   ├── middlewares.py
│   ├── settings.py
│   └── spiders/

각 파일의 역할은?

  • scrapy.cfg: 프로젝트 설정 파일 (거의 건드릴 일 없음)
  • items.py: 데이터 모델 정의 (예: 상품명, 가격 등)
  • pipelines.py: 데이터 정제·검증·내보내기 로직
  • middlewares.py: 프록시, 헤더 등 고급 설정
  • settings.py: 동시성, 딜레이 등 Scrapy 동작 설정
  • spiders/: 실제 스크래핑 코드 작성 위치

벌써 복잡하게 느껴진다면, 비개발자라면 누구나 겪는 자연스러운 반응이에요.

Python 웹 스크래퍼 만들기: Scrapy로 Amazon 상품 데이터 긁어오기

실제 예시로 Amazon 검색 결과에서 상품 데이터를 추출해볼게요. (참고: Amazon은 스크래핑을 금지하고, 강력한 봇 차단 정책이 있으니 학습용으로만 활용하세요!)

1. 스파이더 만들기

spiders/ 폴더에 amazon_spider.py 파일을 새로 만듭니다.

import scrapy

class AmazonSpider(scrapy.Spider):
    name = "amazon_example"
    allowed_domains = ["amazon.com"]
    start_urls = ["https://www.amazon.com/s?k=smartphones"]

    def parse(self, response):
        products = response.xpath("//div[@data-component-type='s-search-result']")
        for product in products:
            yield {
                'name': product.xpath(".//span[@class='a-size-medium a-color-base a-text-normal']/text()").get(),
                'price': product.xpath(".//span[@class='a-price-whole']/text()").get(),
                'rating': product.xpath(".//span[@aria-label]/text()").get()
            }
        next_page = response.xpath("//li[@class='a-last']/a/@href").get()
        if next_page:
            yield scrapy.Request(url=response.urljoin(next_page), callback=self.parse)

여기서 무슨 일이 일어나고 있을까요?

  • ‘스마트폰’ 검색 결과 페이지에서 시작합니다.
  • 각 상품별로 이름, 가격, 평점을 XPath로 추출합니다.
  • ‘다음 페이지’ 링크를 찾아 Scrapy가 자동으로 페이지를 넘기며 추가 상품을 수집합니다.

2. 스파이더 실행

프로젝트 루트에서 아래 명령어를 실행하세요.

scrapy crawl amazon_example -o products.json

이제 Scrapy가 검색 결과를 따라가며 데이터를 JSON 파일로 저장합니다.

페이지네이션과 동적 콘텐츠 처리

Scrapy는 링크 추적과 페이지네이션에 강점이 있습니다. 하지만 JavaScript로 동적으로 로드되는 콘텐츠(예: 무한 스크롤, 팝업 리뷰 등)는 기본적으로 수집이 어렵습니다. 이런 경우 Selenium이나 Splash 같은 도구와 연동해야 하며, 이때는 또 다른 복잡함이 따라옵니다.

Scrapy Python으로 데이터 가공 및 내보내기

데이터를 긁어왔다면, 이제 정제하고 원하는 곳에 내보내야겠죠.

  • 파이프라인: pipelines.py에서 Python 클래스를 만들어 가격을 숫자로 바꾸거나, 누락된 행을 걸러내거나, 번역 API를 호출하는 등 데이터 가공이 가능합니다.
  • 내보내기: Scrapy는 -o 옵션으로 CSV, JSON, XML 등 다양한 포맷으로 바로 내보낼 수 있습니다. Google Sheets 등으로 직접 연동하려면 추가 코드나 외부 라이브러리가 필요해요.

감성 분석이나 번역 등 고급 처리는 외부 API나 Python 라이브러리와 연동해야 하며, 기본 제공 기능은 아닙니다.

숨겨진 비용: 비즈니스 사용자를 위한 Scrapy Python의 한계

Scrapy는 강력하지만, 비개발자에게는 쉽지 않은 도구입니다. 실제로 많은 비즈니스 사용자가 겪는 어려움은 다음과 같습니다.

  • 학습 곡선이 가파름: Python, HTML, XPath/CSS 셀렉터, Scrapy 구조까지 익혀야 하니 익숙해지기까지 시간이 오래 걸려요.
  • 설치·환경 세팅의 번거로움: Python 설치, 의존성 관리, 오류 해결 등 초보자에겐 진입장벽이 높습니다.
  • 시각적 인터페이스 부재: 모든 작업이 코드로 이루어져, 클릭만으로 데이터를 선택할 수 없습니다.
  • 유지보수 부담: 웹사이트 구조가 바뀌면 스파이더가 깨지고, 직접 수정해야 합니다.
  • AI 기능 미지원: 번역, 요약, 감성 분석 등은 모두 별도 코드가 필요합니다.

Scrapy 2.jpeg

간단 비교표를 참고하세요.

과제Scrapy (Python)비즈니스 사용자 요구
코딩 필요코드 없이 사용 원함
세팅 시간수 시간~수일수 분
유지보수지속적(사이트 변경 시)최소화
데이터 내보내기CSV/JSON(수동 연동)Excel/Sheets/Notion 바로 내보내기
AI 기능없음(직접 연동)내장 번역/감성 분석

마케터, 영업, 운영 담당자라면 Scrapy는 ‘물총 싸움에 대포를 들고 나가는’ 느낌일 수 있습니다.

Thunderbit: Scrapy Python의 노코드 대안

여기서 가 등장합니다. 오랜 기간 자동화 툴을 개발해온 입장에서 말씀드리자면, 대부분의 비즈니스 사용자는 코딩이 아니라 ‘빠른 데이터’를 원합니다.

Thunderbit는 AI 기반 웹 스크래퍼로, Chrome 확장 프로그램 형태로 제공됩니다. 비개발자도 아래와 같은 작업을 손쉽게 할 수 있습니다.

  • 클릭 몇 번이면 어떤 웹사이트든 데이터 추출
  • 자연어로 원하는 데이터 설명(예: "상품명, 가격, 평점")
  • 페이지네이션·서브페이지 자동 처리
  • Excel, Google Sheets, Airtable, Notion 등으로 바로 내보내기
  • 번역, 요약, 감성 분석까지 실시간 지원

Python도, 셀렉터도, 유지보수 걱정도 필요 없습니다.

Thunderbit는 빠른 실행과 AI의 자동화를 원하는 비즈니스 사용자를 위해 설계되었습니다.

Thunderbit vs. Scrapy Python: 비교표

두 도구를 나란히 비교해볼게요.

항목Scrapy (Python)Thunderbit (AI 도구)
필요 역량Python, HTML, 셀렉터없음—포인트 앤 클릭, 자연어
세팅 시간수 시간(설치, 코딩, 디버깅)수 분(확장 설치, 로그인)
데이터 구조화수동(모델, 파이프라인 정의)AI가 자동으로 컬럼 제안
페이지네이션/서브페이지코드 필요1클릭(AI 자동 처리)
번역별도 코드/API 연동내장—'번역' 토글만 하면 됨
감성 분석외부 라이브러리/API내장—'감성' 컬럼 추가
내보내기 옵션CSV/JSON(수동 업로드)1클릭으로 Excel, Google Sheets, Airtable, Notion
유지보수수동(사이트 변경 시 코드 수정)AI가 소규모 변경 자동 대응
확장성대규모·지속적 프로젝트에 적합빠른 작업, 중간 규모(수백~수천 행)에 최적
비용무료(시간·개발 리소스 필요)무료 플랜+유료(월 $9부터, 시간·노력 절감)

언제 Scrapy Python, 언제 Thunderbit를 써야 할까?

간단하게 정리하면:

  • Scrapy를 추천하는 경우:
    • 개발자이거나 개발팀이 있다
    • 수만~수십만 페이지 대규모 스크래핑, 맞춤형 파이프라인 구축이 필요하다
    • 사이트 구조가 복잡하거나 고급 로직이 필요하다
    • 유지보수와 커스터마이징에 익숙하다
  • Thunderbit를 추천하는 경우:
    • 코딩이 어렵거나 원하지 않는다
    • 빠르게 데이터가 필요하다(일회성/정기 업무)
    • 번역, 감성 분석, 데이터 가공이 내장된 솔루션이 필요하다
    • 속도와 유연성을 중시한다

Scrapy 3.jpeg

결정 흐름도는 다음과 같습니다.

  1. Python 코딩이 가능한가?
    • 예 → Scrapy 또는 Thunderbit(빠른 작업)
    • 아니오 → Thunderbit
  2. 프로젝트가 대규모·지속적인가?
    • 예 → Scrapy
    • 아니오 → Thunderbit
  3. 번역·감성 분석이 필요한가?
    • 예 → Thunderbit
    • 아니오 → 둘 다 가능

실전: Thunderbit로 Amazon 상품 데이터 추출하기(코딩 불필요)

이번엔 Amazon 예제를 Thunderbit로 훨씬 쉽게 해볼게요.

1. Thunderbit 설치

  • 회원가입(무료 플랜 제공)

2. Amazon에서 원하는 상품 검색

  • 에서 ‘laptop’ 등 원하는 상품을 검색하세요.

3. Thunderbit 실행

  • 브라우저에서 Thunderbit 아이콘 클릭
  • Amazon 페이지를 자동 인식하여 사이드 패널이 열립니다.

4. AI 필드 추천 사용

  • “AI 필드 추천” 클릭
  • Thunderbit의 AI가 페이지를 분석해 ‘상품명’, ‘가격’, ‘평점’, ‘리뷰 수’ 등 컬럼을 제안합니다.
  • 필요에 따라 컬럼 추가/삭제(예: ‘상품 URL’, ‘Prime 여부’ 등 직접 입력 가능)

5. 페이지네이션·서브페이지 스크래핑 활성화

  • 페이지네이션 토글: Thunderbit가 ‘다음’ 버튼을 자동 클릭하며 모든 페이지 수집
  • 서브페이지 스크래핑 토글: 각 상품 상세 페이지에 들어가 추가 정보(설명, ASIN 등)까지 추출

6. 스크래핑 실행

  • 스크래핑 버튼 클릭
  • Thunderbit가 실시간으로 페이지별 데이터를 수집합니다.

7. 번역·감성 분석(선택)

  • 상품 설명을 번역하고 싶다면 해당 컬럼에 ‘번역’ 토글
  • 리뷰 감성 분석이 필요하다면 ‘감성’ 컬럼 추가—Thunderbit AI가 자동 분석

8. 데이터 내보내기

  • 내보내기 클릭
  • Excel, Google Sheets, Airtable, Notion 중 선택
  • 별도의 CSV 변환 없이 바로 활용 가능

9. 정기 스크래핑 예약(선택)

  • 예: 매일 오전 8시 등 원하는 스케줄 설정
  • Thunderbit가 자동으로 스크래핑 후 지정한 곳에 업데이트

이렇게 코드, 셀렉터, 유지보수 걱정 없이 바로 데이터를 얻을 수 있습니다.

보너스 팁: 웹 스크래핑 프로젝트 효율 높이기

Scrapy, Thunderbit 등 어떤 도구를 쓰든 아래 팁을 참고하세요.

  • 데이터 검증: 누락값, 이상값(예: $0 가격, 빈 이름 등) 체크 필수
  • 준수사항 확인: 사이트 이용약관, robots.txt 확인, 서버 과부하 방지
  • 자동화는 신중하게: 데이터 신선도 유지를 위해 스케줄링 활용, 과도한 스크래핑은 피하기
  • 무료 도구 적극 활용: Thunderbit는 이메일, 전화번호, 이미지 추출 등 무료 기능도 제공—리드 생성, 콘텐츠 큐레이션에 유용
  • 분석을 위한 정리: Sheets/Excel로 바로 내보내 필터, 피벗, 시각화까지 빠르게

더 많은 팁은 를 참고하세요.

더 많은 팁은 를 참고하세요.

결론: 웹 스크래핑, 우리 팀에 맞는 도구를 고르세요

정리하자면, Scrapy는 개발자에겐 강력하지만, 대부분의 비즈니스 사용자에겐 과할 수 있습니다. Python에 익숙하고 대규모 맞춤형 웹 스크래퍼가 필요하다면 Scrapy가 제격이죠. 하지만 빠르게, 코드 없이, 번역·감성 분석까지 한 번에 데이터를 얻고 싶다면 가 훨씬 효율적입니다.

Thunderbit는 비개발자 팀에게 엄청난 시간과 스트레스를 줄여줍니다. ‘이 데이터가 필요해’에서 ‘스프레드시트에 바로 반영’까지 몇 분이면 충분하죠. AI 필드 추천, 서브페이지 스크래핑, 1클릭 내보내기 등 덕분에 웹을 비즈니스 인사이트로 바꾸는 일이 그 어느 때보다 쉬워졌습니다.

다음에 상품 데이터 수집, 가격 모니터링, 리드 리스트 구축이 필요하다면, Python 코드를 직접 짤지, 아니면 결과만 빠르게 얻을지 고민해보세요. Thunderbit 무료 플랜으로 웹 스크래핑의 새로운 경험을 시작해보시길 추천합니다.

더 궁금하다면 , , 또는 에서 웹 스크래핑 노하우를 확인해보세요.

더 읽어보기:

주의: 웹 스크래핑은 반드시 해당 사이트의 이용약관과 현지 법률을 준수해야 합니다. 법적 분쟁을 피하려면 전문가와 상담하세요.

작성자: Thunderbit 공동창업자 & CEO Guan Shuai. SaaS, 자동화, AI 분야에서 다년간 경험을 쌓았습니다—여러분이 더 쉽게 데이터로 일할 수 있도록.

AI 웹 스크래퍼 체험하기
Shuai Guan
Shuai Guan
Co-founder/CEO @ Thunderbit. Passionate about cross section of AI and Automation. He's a big advocate of automation and loves making it more accessible to everyone. Beyond tech, he channels his creativity through a passion for photography, capturing stories one picture at a time.
Topics
Scrapy PythonPython 웹 스크래퍼Scrapy 튜토리얼
Thunderbit 체험하기
AI로 웹페이지를 손쉽게 스크래핑하세요.
무료 플랜 제공
한국어 지원
목차
AI로 데이터 추출하기
Google Sheets, Airtable, Notion으로 데이터 손쉽게 전송
Chrome Store Rating
PRODUCT HUNT#1 Product of the Week