[파이썬 크롤링/부동산 데이터] 스크래피(scrapy) startproject로 초기 프로젝트 구성하기

2021. 3. 28. 02:36 Python/파이썬 웹 크롤링

| 들어가기 전에

 

본 포스팅을 제대로 따라가려면 scrapy가 설치되어 있어야 합니다. 아래 링크를 참조하셔서 scrapy 설치를 먼저 진행해주세요!

 

[Python/Python 프로그래밍] - 스크래피(scrapy) 설치 및 scrapy 프로젝트 시작하기

 

또한 부동산 공공데이터 사이트에서 공공데이터 API를 신청한 후 해당 API가 사용가능한 상태가 되어야 합니다.

 

[기타 정보/ETC] - 국토교통부 공공데이터 부동산 실거래가 API 신청 방법

 

또한 본 포스팅은 다음 실행환경을 기반으로합니다.

 

  1. window 10

  2. Python 3.8.1

  3. Scrapy 1.8.0

 

| scrapy 프로젝트 만들기

 

아래와 같은 커맨드를 치게되면 scrapy에 대한 프로젝트가 만들어 집니다.

C:\Users\user\Desktop\python-tutorial>scrapy startproject invest_crawler
New Scrapy project 'invest_crawler', using template directory 'c:\users\user\appdata\local\programs\python\python38\lib\site-packages\scrapy\templates\project', created in:
    C:\Users\user\Desktop\python-tutorial\invest_crawler

You can start your first spider with:
    cd invest_crawler
    scrapy genspider example example.com

 

프로젝트의 구성은 다음과 같습니다.

|   scrapy.cfg
|
\---invest_crawler
    |   items.py
    |   middlewares.py
    |   pipelines.py
    |   settings.py
    |   __init__.py
    |
    +---spiders
    |   |   __init__.py
    |   |
    |   \---__pycache__
    \---__pycache__

 

scrapy에 대한 구성은 전 포스팅에서 설명했지만 다시 정리하면

 

  • __pycache__, __init__.py : 파이썬에서 파생된 파일들입니다.
    __pycache__는 파이썬에서 .py 파일을 인터프리트할 때 중복된 파일을 해석하는 일이 없도록 인터프리트된 결과를 캐싱한 파일입니다.
    __init__.py 는 간단히 설명하면 파이썬에서 단순 디렉터리인지 아니면 파이썬 패키지인지 판별하는 역할을 하는 파일이라고 보시면 됩니다. 자세한 것은 여기를 참조하시면 됩니다.
  • scrapy.cfg : scrapy가 어떤 크롤러 프로젝트와 어떤 세팅을 따를 것인지 혹은 어떤 프로젝트를 기본 크롤러로 지정할 지에 대한 정보를 저장하는 파일입니다. 이 포스팅에서는 크게 자세히 다루지는 않을 것입니다.
  • items.py : scrapy에서는 크롤링된 데이터를 item이라는 DTO(Data Transfer Object)에 담아서 로직을 처리합니다. 이 item은 scrapy.Item을 상속받아서 만들 수 있습니다.
  • middlewares.py : scrapy는 크롤링된 데이터를 item에 담아서 처리합니다. 이때, 데이터를 처리할어떤 특정 요청과 응답을 구현하는 로직을 만들어야 하는데 이것은 scrapy의 middleware라는 모듈에서 처리하게 됩니다. middlewares.py는 이 middleware를 구현하는 파이썬 파일이라고 생각하면 됩니다.
  • pipelines.py : scrapy가 데이터를 처리할 때 어떤 특정 통로를 통해서 데이터를 순차적인 로직에 의해서 처리하게 만듭니다. 이 통로를 pipeline이라고 부르며 여러 개의 pipeline을 따라서 scrapy의 데이터의 요청과 응답을 처리하게 됩니다. 

위의 내용 중에 이해하기 어렵거나 모자란 부분이 있다면은 아래의 scrapy 아키텍처를 설명한 포스팅을 참고하시면 감사하겠습니다.

 

[Python/Python 프로그래밍] - 파이썬 웹 스크래핑할 때 이거 쓰세요. 최고의 파이썬 웹 스크래핑 솔루션 scrapy

 

다음 시간에는 기본적인 scrapy project를 이용하여 부동산 데이터를 어떻게 가져오는 지 알아보도록 하겠습니다.



출처: https://engkimbs.tistory.com/961?category=807933 [새로비]