Scrapy 구조

2018. 7. 20. 00:11파이썬

1. Scrapy의 구조


scrapy startproject 프로젝트명

spiders 디렉터리 : 실제로 Crawling 하는 로직들이 들어가있는 디렉터리

items.py : 크롤링 대상의 게시물에 대한 항목들

pipelines.py : 크롤링 이후 검색된 데이터를 어떻게 처리할지 정의.

settings.py : 스크래피 프로젝트 전체에 대한 설정 

ex) 로그파일, 파이프라인 순서 결정


2. Scrapy 동작 


(1) items 정의                                ┌ 단순한 String List

(2) 시작 URL 지정 ( start_requests | start_urls )

└  callback 함수 지정 가능 : parse()

(3) callback 함수 정의

selector(xparh, css)를 이용하여 데이터를 선택

(4) Pipeline을 이용하여 데이터를 필터링 or DB에 저장


3. Details


(1) Spiders

①크롤러 이름 지정

② 스타트 URL 지정

a. start_urls : 시작 주소를 리스트 형태로 추가

b. start_requests : 콜백함수 지정 가능 (parse()) , 사이트에 로그인 할 때 사용

③ Parser 정의

def parse(self, response):


(2) Selector  

HTML 문서의 특정 노드를 선택 , xpath OR css


(3) Pipeline

데이터를 크롤링 한 이후 특정 행동을 수행하도록 한다.

-데이터 유효성 검사

-DB에 아이템 저장

-필터링

▶settings.py

파이프 클래스 및 순서를 지정

ITEM_PIPELINES == {

'kiss.pipelines.CommunityPipeline':300,

}


(4) Logging

▶settings.py

LOG_FILE == 'logfile.log'

LOG_LEVEL == logging.DEBUG


LOG Level

a. logging.CRITCAL 

b. logging.ERROR

c. logging.WARNING

d. logging.INFO

e. logging.DEBUG


위로 갈 수록 높은 수준의 로깅을 수행한다.