scrapy
- spiders : 크롤링 로직이 들어 있는 디렉토리
- items.py : 대상에 대한 정보 등을 정의
- pipelines.py : 저장된 정보를 가지고 크롤링한 이후의 처리 작업
- scrapy.cfg : 전체 프로젝트 배포 시의 설정, 로그 변경 가능
- settings.py : scrapy 프로젝트에 대한 설정
scrapy의 동작
items 정의
스타트 url 지정(start_requests, start_urls, callback 함수 지정(parse())
- start_url : list file, string list
- start_requests : 특정한 url에 대해서 callback 함수 지정 가능
callback함수 정의
- selector(xpath, css)를 이용하여 데이터를 선택
items.py에 데이터 넣는다.
Pipeline을 이용하여 데이터를 필터링 하거나 데이터베이스에 저장
Spiders
크롤러의 이름 지정
- name
- 크롤러 시작
scrapy crawl (Spider name)
ex)scrapy crawl quotes
스타트 URL 지정
- start_urls
- 시작 주소를 리스트 형태로 추가 가능
- start_request
- 콜백함수를 지정 할 수 있음
- 사이트에 로그인을 할 때 사용
- start_urls
파서 정의
- def parse(self, response):
여러개 지정해서 순차적으로 돌려도 되고, 필요한 것만 돌려도 된다.
Selector
- HTML 문서에 특정 노드를 선택
- css vs xpath selector
>>> response.xpath('//title/text()')
>>> response.css('title::text')`
Pipeline
데이터를 크롤링 한 이후에 특정 행동을 수행
- 데이터의 유효성 검사
- 중복 체크
- 데이터베이스에 아이템 저장
- 필터링
settings.py
- 파이프 클래스 및 순서를 지정
ITEM_PIPELINES = {
'oneq.pipelines.TestPipeline': 300,
}
Logging
Settings.py
- LOG_FILE = ‘logfile.log’
- LOG_LEVEL = logging.DEBUG
Log Level
logging.CRITICAL - for critical errors (highest severity)
logging.ERROR - for regular errors
logging.WARNING - for warning messages
logging.INFO - for informational messages
logging.DEBUG - for debugging messages (lowest severity)
'HappyCoding > happy python' 카테고리의 다른 글
파이썬 라이브러리 (0) | 2022.04.16 |
---|---|
파이썬 (0) | 2022.04.16 |
격자판 palindrome 구하기 하는데, 메모리 변하는 거 그리면서 놀기 (0) | 2022.03.11 |
교보문고. readITzine (0) | 2021.11.24 |
python datetime모듈 (0) | 2021.11.15 |