Crawling

Nasdaq Data Link를 활용한 데이터 수집

개요

  • Nasdaq Data Link은 금융 및 경제 데이터를 제공하는 플랫폼으로, 특히 투자자, 연구자, 그리고 데이터 애널리스트들에게 유용
  • 기존 quandl에서 2018년에 Nasdaq에 인수되었으며, 주식, 채권, 선물, 외환, 경제 지표 등 다양한 데이터를 제공
  • 그러나 Free 데이터에서 유의미한 데이터를 찾기에는 부족함을 느낌

Nasdaq Data Link의 주요 기능

  • 데이터 제공
    • 금융 시장 데이터 (주식, 상품, 금리 등)
    • 경제 데이터 (GDP, 실업률, 소비자 물가 지수 등)
    • 대체 데이터 (소셜미디어 트렌드, 위성 이미지 분석, 물류 데이터 등)
  • API 기반 접근
    • Python, R, Excel 등 다양한 도구에서 API를 사용해 데이터를 불러올 수 있음.
  • 데이터 품질
    • 검증된 데이터를 제공하며, 여러 프리미엄 데이터와 함께 무료 데이터도 사용할 수 있음.
  • 데이터 다운로드
    • CSV, Excel, JSON, XML 포맷으로 다운로드 가능하며, 시계열 분석에 최적화되어 있음.

회원가입

image.png

Scrapy Tutorial - 다중페이지 크롤링

개요

  • 이번에는 Scrapy를 통해서 다중 페이지를 크롤링 하도록 한다.

Target 페이지

Untitled

프로젝트 시작

  • 프로젝트 시작은 다음과 같이 할 수 있다.
$ scrapy startproject multiCam_tutorial
New Scrapy project 'multiCam_tutorial', using template directory 'C:\Users\j2hoo\OneDrive\Desktop\your_project_folder\venv\Lib\site-packages\scrapy\templates\project', created in:
    C:\Users\j2hoo\OneDrive\Desktop\your_path\multiCam_tutorial

You can start your first spider with:
    cd multiCam_tutorial
    scrapy genspider example example.com
  • 해당 multiCam_tutorial 경로에서 다음 명령어를 실행하여 타겟 사이트를 설정한다.
$ scrapy genspider audible www.audible.com/search
Created spider 'audible' using template 'basic' in module:
  multiCam_tutorial.spiders.audible
  • audible.py 파일을 찾아 코드를 확인한다.

Scrapy Tutorial - 기본편

개요

  • Scrapy Tutorial 설치 과정 및 기본 크롤링 과정을 살펴본다.

라이브러리 설치

  • 라이브러리 설치는 다음과 같다.
pip install scrapy

프로젝트 시작

  • Django와 비슷하게 터미널 명령어는 startproject라고 입력한다.
$ scrapy startproject multiCam_tutorial
New Scrapy project 'multiCam_tutorial', using template directory 'C:\Users\j2hoo\OneDrive\Desktop\your_project_folder\venv\Lib\site-packages\scrapy\templates\project', created in:
    C:\Users\j2hoo\OneDrive\Desktop\your_path\multiCam_tutorial

You can start your first spider with:
    cd multiCam_tutorial
    scrapy genspider example example.com
  • 파일 구조는 아래와 같이 여러개의 파일로 구성되었다.

Untitled

$ scrapy genspider worldometer www.worldometers.info/world-population/population-by-country
Created spider 'worldometer' using template 'basic' in module:
  multiCam_tutorial.spiders.worldometer

Untitled

네이버 API 사용 신청 (2023 Aug)

개요

  • 크롤링을 위해 네이버 API 사용을 신청해본다.

Step 01 - 사이트 접속

Untitled

Step 02 - 로그인

  • 화면 우측 상단에서 로그인을 진행한다.

Step 03 - API 이용신청 및 Application 등록

  • 상단 메뉴에서 Application 클릭 후, 내 애플리케이션을 클릭한다.

Untitled

  • 확인 버튼을 클릭한다.

Untitled

  • 이용약관에 동의한다.

Untitled

  • 계정 정보를 등록 및 휴대폰 인증을 진행한다.

Untitled

  • 애플리케이션을 등록한다. (아무이름을 작성한다)
  • 개인 PC로 접속하기 위해 WEB 설정 - localhost를 입력한다.
  • 사용 API는 여기에서는 간단하게 검색만 지정한다.

Untitled

크롬드라이버 설정 방법 - Windows (2023 Aug)

개요

  • selenium 4.10 버전에서 크롬드라이버 설정하는 방법에 대해 기술하고자 한다.

크롬 버전 확인

  • 크롬 버전 확인은 아래와 같이 진행한다.
  • 먼저 설정을 클릭한다.

Untitled

  • Chrome 정보를 클릭한다.

Untitled

  • 본인의 크롬 버전을 확인한다.

Untitled

크롬 드라이버 다운로드

Untitled

Untitled

  • 필자의 경우 크롬 버전은 115.0.5790.110 이지만 Status가 X로 되어 있다. 이럴 경우 115.0.5790.102 버전을 선택 한다.

Untitled

서울시 부동산 실거래가 정보 API 크롤링 2 - 크롤링편 (XML)

개요

  • Open API를 통해서 부동산 실거래가 정보를 pandas 데이터프레임으로 변환하는 코드를 구현한다.

요청인자 확인

Untitled

  • 샘플 URL은 크게 2가지를 제공한다.
    • 서울시 부동산 실거래가 정보
    • 서울시 부동산 실거래가 정보(마곡일성트루엘플래닛)
  • 출력 예제는 다음과 같다.
<?xml version="1.0" encoding="UTF-8"?>
<tbLnOpendataRtmsV>
<list_total_count>2639192</list_total_count>
<RESULT>
<CODE>INFO-000</CODE>
<MESSAGE>정상 처리되었습니다</MESSAGE>
</RESULT>
<row>
<ACC_YEAR>2023</ACC_YEAR>
<SGG_CD>11545</SGG_CD>
<SGG_NM>금천구</SGG_NM>
<BJDONG_CD>10100</BJDONG_CD>
<BJDONG_NM>가산동</BJDONG_NM>
<LAND_GBN>1</LAND_GBN>
<LAND_GBN_NM>대지</LAND_GBN_NM>
<BONBEON>0776</BONBEON>
<BUBEON>0000</BUBEON>
<BLDG_NM>가산대명벨리온</BLDG_NM>
<DEAL_YMD>20230127</DEAL_YMD>
<OBJ_AMT>12300</OBJ_AMT>
<BLDG_AREA>16.28</BLDG_AREA>
<TOT_AREA>25.630000</TOT_AREA>
<FLOOR>8</FLOOR>
<RIGHT_GBN/>
<CNTL_YMD/>
<BUILD_YEAR>2017</BUILD_YEAR>
<HOUSE_TYPE>오피스텔</HOUSE_TYPE>
<REQ_GBN>중개거래</REQ_GBN>
<RDEALER_LAWDNM>서울 금천구</RDEALER_LAWDNM>
</row>
<row>
<ACC_YEAR>2023</ACC_YEAR>
<SGG_CD>11500</SGG_CD>
<SGG_NM>강서구</SGG_NM>
<BJDONG_CD>10500</BJDONG_CD>
<BJDONG_NM>마곡동</BJDONG_NM>
<LAND_GBN>1</LAND_GBN>
<LAND_GBN_NM>대지</LAND_GBN_NM>
<BONBEON>0793</BONBEON>
<BUBEON>0000</BUBEON>
<BLDG_NM>유림트윈파크</BLDG_NM>
<DEAL_YMD>20230127</DEAL_YMD>
<OBJ_AMT>13900</OBJ_AMT>
<BLDG_AREA>19.99</BLDG_AREA>
<TOT_AREA>30.300000</TOT_AREA>
<FLOOR>6</FLOOR>
<RIGHT_GBN/>
<CNTL_YMD/>
<BUILD_YEAR>2015</BUILD_YEAR>
<HOUSE_TYPE>오피스텔</HOUSE_TYPE>
<REQ_GBN>중개거래</REQ_GBN>
<RDEALER_LAWDNM>서울 강서구</RDEALER_LAWDNM>
</row>
<row>
<ACC_YEAR>2023</ACC_YEAR>
<SGG_CD>11500</SGG_CD>
<SGG_NM>강서구</SGG_NM>
<BJDONG_CD>10300</BJDONG_CD>
<BJDONG_NM>화곡동</BJDONG_NM>
<LAND_GBN>1</LAND_GBN>
<LAND_GBN_NM>대지</LAND_GBN_NM>
<BONBEON>1115</BONBEON>
<BUBEON>0034</BUBEON>
<BLDG_NM>casagio</BLDG_NM>
<DEAL_YMD>20230127</DEAL_YMD>
<OBJ_AMT>22100</OBJ_AMT>
<BLDG_AREA>29.98</BLDG_AREA>
<TOT_AREA>21.430000</TOT_AREA>
<FLOOR>2</FLOOR>
<RIGHT_GBN/>
<CNTL_YMD/>
<BUILD_YEAR>2019</BUILD_YEAR>
<HOUSE_TYPE>연립다세대</HOUSE_TYPE>
<REQ_GBN>직거래</REQ_GBN>
<RDEALER_LAWDNM/>
</row>
<row>
<ACC_YEAR>2023</ACC_YEAR>
<SGG_CD>11320</SGG_CD>
<SGG_NM>도봉구</SGG_NM>
<BJDONG_CD>10600</BJDONG_CD>
<BJDONG_NM>방학동</BJDONG_NM>
<LAND_GBN>1</LAND_GBN>
<LAND_GBN_NM>대지</LAND_GBN_NM>
<BONBEON>0632</BONBEON>
<BUBEON>0023</BUBEON>
<BLDG_NM>(632-23)</BLDG_NM>
<DEAL_YMD>20230126</DEAL_YMD>
<OBJ_AMT>12500</OBJ_AMT>
<BLDG_AREA>41.58</BLDG_AREA>
<TOT_AREA>30.760000</TOT_AREA>
<FLOOR>1</FLOOR>
<RIGHT_GBN/>
<CNTL_YMD/>
<BUILD_YEAR>1986</BUILD_YEAR>
<HOUSE_TYPE>연립다세대</HOUSE_TYPE>
<REQ_GBN>직거래</REQ_GBN>
<RDEALER_LAWDNM/>
</row>
<row>
<ACC_YEAR>2023</ACC_YEAR>
<SGG_CD>11410</SGG_CD>
<SGG_NM>서대문구</SGG_NM>
<BJDONG_CD>11200</BJDONG_CD>
<BJDONG_NM>대현동</BJDONG_NM>
<LAND_GBN>1</LAND_GBN>
<LAND_GBN_NM>대지</LAND_GBN_NM>
<BONBEON>0101</BONBEON>
<BUBEON>0007</BUBEON>
<BLDG_NM>혜우</BLDG_NM>
<DEAL_YMD>20230126</DEAL_YMD>
<OBJ_AMT>80000</OBJ_AMT>
<BLDG_AREA>129.27</BLDG_AREA>
<TOT_AREA>0.000000</TOT_AREA>
<FLOOR>10</FLOOR>
<RIGHT_GBN/>
<CNTL_YMD/>
<BUILD_YEAR>1996</BUILD_YEAR>
<HOUSE_TYPE>아파트</HOUSE_TYPE>
<REQ_GBN>직거래</REQ_GBN>
<RDEALER_LAWDNM/>
</row>
</tbLnOpendataRtmsV>

Untitled

서울시 부동산 실거래가 정보 API 크롤링 1 - 인증키 발급편

회원가입

Untitled

  • 모두 동의합니다를 선택한다.

Untitled

Untitled

  • 본인인증 절차를 거친다.

Untitled

Untitled

  • 회원정보를 입력한다.

Untitled

  • 부가서비스 신청은 옵션이기 때문에 여기서 별도로 다루지는 않겠다.

Untitled

  • 회원가입이 완료가 되었다.

Untitled

서울 열린데이터 광장 로그인

  • 이제 데이터 수집을 위해, 해당 사이트에 로그인을 진행한다.

Untitled

  • 찾고 싶은 데이터를 입력해주세요 부동산을 입력하고 검색을 진행한다.

Untitled

  • 여기에서 서울시 부동산 실거래가 정보 탭을 클릭한다.

Untitled

  • 하단에 인증키 신청을 클릭한다.

Untitled

  • 작성이 끝나면 바로 API 발급이 부여가 된다.

Untitled

R Selenium 설치 가이드 (Windows)

개요

  • R에서 Selenium을 설치하는 과정을 보여준다.
  • 우선 자바가 설치되어 있는지 확인한다.
  • 유투브에서 제목만 가져오는 Demo 코드를 작성한다.

자바를 모르시는 분

  • 만약 자바 설치를 해본적이 없다면 아래 코드를 순차적으로 입력한다.
install.packages("multilinguer")
library(multilinguer)
install_jdk()

# Rtools 설치 필요 
# https://cran.r-project.org/bin/windows/Rtools
write('PATH="${RTOOLS40_HOME}\\usr\\bin;${PATH}"', file = "~/.Renviron", append = TRUE)
Sys.which("make")

install.packages(c("stringr", "hash", "tau", "Sejong", "RSQLite", "devtools"),
                 type = "binary")

install.packages("remotes")
remotes::install_github("haven-jeon/KoNLP",
                        upgrade = "never",
                        INSTALL_opts = c("--no-multiarch"))

library(KoNLP)
useNIADic()
  • 마지막 코드에서 콘솔창이 보인다면 정상적으로 설치가 완료가 된 것이다.
> library(KoNLP)
Checking user defined dictionary!

> useNIADic()
Backup was just finished!
1213109 words dictionary was built.
  • 검색창에서 시스템 환경 변수 편집을 검색 후, 실제 자바가 설치가 되어 있는지 직접 확인한다.
    • 환경변수 - 시스템 변수 탭 내 Path 클릭 후 확인 버튼 - 환경 변수 편집 순차적으로 탭을 확인한다.

Untitled