<인턴생활>/[python 예제]
[크롤링] 스크래피 프로젝트 생성
Hading
2019. 4. 24. 18:12
728x90
이번 시간에는 스크래피를 설치하고, 프로젝트를 생성하고, 크롤링의 핵심이 되는 아이템 설정하기까지 살펴보겠습니다.
1. 스크래피 설치
set swap
# swap을 첨부하는 이유는 나중에 xml을 설치했을 때 메모리 공간 확보를 위해서 입니다. sudo fallocate -l 4G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile echo "/swapfile swap swap sw 0 0" >> /etc/fstab echo "vm.swappiness = 10" >>/etc/sysctl.conf echo "vm.vfs_cache_pressure = 50" >> /etc/sysctl.conf
Install Scrapy
sudo rpm -Uvh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm yum update -y yum install python-pip -y yum install python-devel -y yum install gcc gcc-devel -y yum install libxml2 libxml2-devel -y yum install libxslt libxslt-devel -y yum install openssl openssl-devel -y yum install libffi libffi-devel -y CFLAGS="-O0" pip install lxml pip install scrapy
Check Scrapy
scrapy -v
2. 스크래피 프로젝트 생성
scrapy startproject <프로젝트 이름>
tree <프로젝트 이름>
3. 아이템 설정하기
items.py 파일을 확인합니다.
# -*- coding: utf-8 -*-
# Define here the models for your scraped items
#
# See documentation in:
# https://doc.scrapy.org/en/latest/topics/items.html
import scrapy
class HanbitMediaItem(scrapy.Item):
# define the fields for your item here like:
# name = scrapy.Field()
# 책 이름
book_title = scrapy.Field()
# 저자 이름
book_author = scrapy.Field()
# 번역자 이름
book_translator = scrapy.Field()
# 출간일
book_pub_date = scrapy.Field()
# ISBN
book_isbn = scrapy.Field()
pass
한빛미디어 홈페이지를 기준으로 책, 저자, 번역자, 출간일, ISBN 에 대해서 아이템을 선정한 후 아이템을 설정해줍니다.
4. 스파이더 만들기
수집할 정보를 결정해 아이템으로 설정했으니 실제 정보를 수집해야 합니다. 이제 사이트를 크롤링할 스파이더를 만들 차례입니다.
스크래피에서 스파이더를 생성해주는 명령어는 genspider입니다.
# genspider 명령의 각종 옵션과 사용 방법
scrapy genspider
# -t 옵션은 크롤러의 템플릿을 결정할 때 사용
# 추가 부가 옵션
# basic : domain에서 설정한 페이지만 크롤링
# crawl : 설정한 규칙에 맞는 링크들을 재귀적으로 탐색
# xmlfeed : xml 피드를 크롤링
# csvfeed : xmlfeed 크롤러와 비교했을 때 각 행을 크롤링한다는 차이가 있음
scrapy genspider -t crawl book_crawl hanbit.co.kr
스파이더 파일은 spiders 디렉터리에 생성됩니다.
book_crawl.py 확인
728x90