Scrapy 란?
Scrapy(스크래피) (/ˈskreɪpi/ SKRAY-pee)[2] 는 Python으로 작성된 오픈소스 웹 크롤링 프레임워크이다. 웹 데이터를 수집하는 것을 목표로 설계되었다. 또한 API를 이용하여 데이터를 추출할 수 있고, 범용 웹 크롤러로 사용될 수 있다.(위키백과)
1. 프로젝트 생성
cmd 창에서
scrapy startproject "프로젝트명"
으로 프로젝트를 생성할 수 있다. 그럼 아래와 같은 구조의 프로젝트가 생성된다.
item.py: 크롤링할 데이터를 저장하는 기능을 하는 객체의 클래스를 정의하는 곳입니다.
middlewares.py: scrapy의 커스텀 middleware의 기능을 정의하는 곳입니다. middleware는 다시 한 번 이야기하자면 engine에서 다른 모듈로 request와 response 정보가 교환될 때 지나가는 중간 통로입니다.
pipelines.py: item pipelines의 커스텀 모듈을 정의하는 곳입니다. pipeline은 item이 다른 저장소로 저장될 때 거치는 통로라고 생각하면 됩니다.
settings.py: 현재 scrapy 프로젝트의 설정을 하는 파이썬 파일입니다.
scrapy.cfg: scrapy 프로젝트들의 전체적인 설정을 하는 곳입니다. 어떤 프로젝트가 어떤 설정을 따를 것인지 배포는 어떤 식으로 할 것인지를 정합니다.
출처: https://engkimbs.tistory.com/897 [새로비]
2. Spider 생성
해당 프로젝트에 진입 후 (cd test_project) spider 를 생성할 수 있다.
명령어는 다음과 같다.
scrapy genspider test1 blog.scrapyhub.com
3.
THE SCRAPINGHUB BLOG
blog.scrapinghub.com
해당 사이트에서 기사의 제목들을 가져온다.
3. 실행
scrapy crawl test2 로 실행하여 결과를 확인할 수 있다.
출력 옵션을 줘서 저장할 수 있다.
scrapy crawl test2 -o result.csv -t csv
결과는 다음과 같다.
댓글