Table of Contents
Scrapy #
최근 웹에는 수억개의 웹페이지가 있으며, 대부분의 페이지들은 수많은 정보를 가지고 있다. 최근 빅데이터가 대두되면서 이전에 작성되었던 페이지들의 정보를 모아 유의미한 정보를 도출하기 위한 여러가지 방법들이 논의되고 있으며 이를 Scraping(혹은 Crawling)이라 한다. Scrapy는 Scraping을 도와주기위한 파이썬 기반 라이브러리이다. Scrapy를 이용하여 필요한 페이지로 접속하여 원하는 형태로 데이터를 가공하여 데이터를 저장할수 있도록 도와준다.
Scrapy 설치 #
pip가 설치되어 있는 쉘에서 아래와 같이 명령어를 입력하여 Scrappy를 설치한다.
$ pip install scrapy
Scrapy 프로젝트 생성 및 프로젝트 구조 #
Scrapy는 설치후 scrapy라는 명령어를 통해 프로젝트를 생성하거나, 작성된 프로젝트를 실행할 수 있다. Scrapy를 생성하는 명령어는 다음과 같다.
$ scrapy startproject project명
위 명령어를 실행하면 proeject명으로 디렉토리가 생성되며, 해당 디렉토리 안에 scrapy 기본 프로젝트가 실행된다. 프로젝트의 구조는 아래와 같다
- project_name/scrapy.cfg 프로젝트 파일구조 설정
- project_name/items.py 크롤링한 결과가 저장될 형태 정의
- project_name/pipelines.py 크롤링한 데이터를 items에 맞게 가공하거나, 가공된 데이터를 어떻게 처리할것인지 정의
- project_name/settings.py 프로젝트 설정 파일
- project_name/spyders/ 실제 크롤링시 동작할 파일
프로젝트 내 items는 데이터를 담을 VAO 역할을, spyders 안에 작성하는 소스코드는 실제 웹페이지 파일로부터 html을 가져와서 처리하는 코드를 담당한다. 또한 Pipeline은 Spyders에서 읽어온 item들을 파일/이메일/DB 등으로 저장하는 작업을 담당한다. 마지막으로 settings.py 파일에서 어떠한 스크립트를 실행할지를 작성하여 프로젝트를 실행 할 수 있다.
Scrapy 예제 #
Scrapy에 대한 예제는 웹에 여러가지 예제가 많아 아래 링크의 예저 코드를 참조하도록 한다.