265일차 스크래피(Scrapy) - 환경 설정 및 기초

2021. 9. 20. 18:27Diary/201~300

 

스크래피(Scrapy)

# 참고 : 스크래피(Scrapy)는 프레임워크이다. (사용방법 숙지하고 규칙에 따라줘야함)

 

특징

  • 크롤링을 좀 더 안정적으로 할 수 있다. -> 스크래피 내부에서 다양한 안전장치가 있다.
  • 크롤링을 좀 더 빠르게 할 수 있다. -> 크롤링 프로그램을 동시에 여러개 실행시켜서 많은 양의 데이터 크롤링 시, 시간을 단축시킬 수 있다.
  • 다양한 크롤링 관련 기능 -> 크롤링한 데이터를 다양한 포맷으로 저장 가능하다.

 

사용방법

  1. 실제 크롤링할 스파이더(spider, scrapy 기반 크롤링 프로그램) 생성
  2. 크롤링할 사이트(시작점)와 크롤링할 아이템(item)에 대한 selector 설정
  3. 크롤러 실행

 

설치

- pip install scrapy

 

또는

- pip install --upgrade setuptools

- pip install pypiwin32

- pip install twisted[tls]

 

그래도 안된다면

- https://visualstudio.microsoft.com/ko/downloads/

 

Visual Studio Tools 다운로드 - Windows, Mac, Linux용 무료 설치

Visual Studio IDE 또는 VS Code를 무료로 다운로드하세요. Windows 또는 Mac에서 Visual Studio Professional 또는 Enterprise Edition을 사용해 보세요.

visualstudio.microsoft.com

 

 

스크래피 프로젝트 생성

 

- scrapy startproject {프로젝트이름}

 

  • scrapy.cfg : 구성 파일 배포
  • Test : 프로젝트의 Python 모듈, 여기에서 코드를 가져옵니다.
  • items.py : 프로젝트 항목 정의 파일
  • pipelines.py : 프로젝트 파이프라인 파일
  • settings.py :  프로젝트 설정 파일
  • spiders : 나중에 스파이더를 넣을 디렉토리

 

크롤러(spider) 작성

 

# Scrapy 프로젝트인 ../Test/Test/ 폴더에서 명령어를 입력해야함.

- scrapy genspider {크롤러이름} {크롤링페이지주소}

 

크롤러(spider) 실행

 

- scrapy crawl gmarket

 

내장 함수인 parse의 response로 값이 떨어진다.

확인해보자.

 

스크래피 쉘 ( Scrapy Shell )

 

- scrapy shell '크롤링할 페이지 주소'

 

명령어

  • exit 또는 Ctrl + Z : 종료
  • view(response) : 크롤링한 페이지를 웹 브라우저를 통해 확인하기 (캐시에 저장된 웹페이지가 열림)
  • response.css(' CSS 셀렉터 값 ').get() : 최초의 데이터만 가져옴
  • response.css(' CSS 셀렉터 값 ').getall() : 전체 데이터를 가져옴
  • response.xpath(' XPATH ').get()
  • response.xpath(' XPATH ').getall()

 

정규 표현식 사용

 

- response.css( ' CSS 셀렉터 ' )[인덱스].re( ' 정규 표현식 ' )