[Scrapy] 크롤링 연습 (1)

Yerin·2020년 1월 28일
0

scrapy로 간단한 크롤링을 해보기로 한다.

우선 scrapy를 설치하고 프로젝트를 생성한다.

scrapy startproject 프로젝트명

프로젝트로 들어가서

scrapy genspider "가져오고 싶은 데이터" www.주소

스크레이피 안에는 스파이더란 것이 있는데 각각의 스파이더는 유니크한 이름을 가진다. 만약 가져오고 싶은 데이터가 countries라고 한다면, countries.py 파일이 생성될 것이고 파일안에는 allowed_domains, start_urls가 있다. allowed_domains에는 http를 없애주고 뒤에 추가적인 엔드포인트 없이 그 웹사이트 주소만 넣어주도록 한다.

다시 프로젝트로 돌아가서 쉘에 들어간다.

scrapy shell

쉘 안에서

fetch("웹사이트 url")

이렇게 하면 웹사이트 내 정보를 가져온다.

r=scrapy.Request(url="웹사이트url")
fetch(r)

해도 같은 결과를 얻을 수 있따.

response.body #data다 가져오기
view(response) #웹브라우저에서 확인

제목 가져오기

scrapy shell로 들어가서

title = response.xpath("//h1")
#title에는 xpath property 와 data property가 있음
title = response.xpath("//h1/text()")
title.get() #제목만깔끔하게 가져온다.

xpath표현은 사이트마다 당연히 다르고, 어떻게 찾는지도 계속 보며 연습해봐야한다.

데이터셋

scrapy crawl "데이터명" -o dataset.json
profile
졸꾸 !!!

0개의 댓글