IT지식/빅데이터

토이프로젝트 - (1) 데이터 수집 (코스피 크롤링)

매 석 2023. 5. 3. 23:16
반응형

- 기본 배경

 

데이터분석 - 토이프로젝트 계획(주가 지수의 관계)

사전 정보 - 일정 : 4월 초 ~ 6월초까지 약 2개월 - 사용언어 : python - 분석 이유 : 평소 미국 증시와 한...

blog.naver.com

 

중간고사 기간은 끝났지만 아직 다음주에 시험이 1개 남아있다.

그래도 최근에 하루 1시간 정도 계획했던 토이프로젝트를 진행하는데 사용하고 있다.

현재 1단계인 "데이터 수집"을 python의 BeautifulSoup을 이용하여 진행 중이다.

사실 네이버에서 코스피, 나스닥, S&P500 등의 지수들을 추출하여

데이터프레임 형태로 형식에 맞게 저장하려고 하였다.

하지만 문제가 발생하여 조금 더 시간이 걸릴 것 같다.

문제는 아래에서 설명하겠다.

 

 

- 네이버 코스피 크롤링

from bs4 import BeautifulSoup
import pandas as pd
import urllib.request as req
import requests
headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36 Edg/92.0.902.62'}
for i in range(1,2):
            url="https://m.stock.naver.com/api/json/sise/dailySiseIndexListJson.nhn?code=KOSPI&pageSize=200&page="+str(i)
            data = requests.get(url,headers=headers)
            value= data.json()   
            kospi = value['result']['siseList']
            df=pd.DataFrame(kospi)
print(df)

실행 결과가 깔끔하게 나와준다.

KOSPI여서 그런지 네이버에서도 깔끔하게 데이터들을 정리해놓았다.

참고로 데이터는 F12-> 네트워크 -> XHR에서 얻을 수 있었다.

데이터 값이 아주 깔끔하게 나와있어서 추출하여 DataFrame 형태로 정리하는 것도 간편했다.

그러나 문제는 미국증시를 추출하는것에서 나왔다.

S&P500을 위와 똑같이 페이지에 접속한 결과이다.

자세히 보면, 쓸데없는 데이터 값이 많은 것을 알 수 있다.

물론 추출하여 코스피와 같은 형태로 열심히 만들어보면 가능할 듯 하지만,

다른 사이트를 통해서 더 쉽게 데이터를 수집할 수 있을 듯 한데,

괜한 시간이 소비될 것 같아서 다른 사이트에서 수집하려고 한다.

또한 나스닥의 경우는 위와 같은 페이지가 없는 건지 찾지 못하였다.

 

- 결론

 

​네이버 api 데이터 형식이 동일하지 않아, 다른 사이트에서 데이터를 수집하려고 한다.

 

어렵다면 python의 financedatareader와 같은 라이브러리를 통해

데이터를 얻으려고 한다.

하지만 데이터 수집하는 과정도 데이터 분석가로서 필요한 능력이라고 생각하여

아마 크롤링을 통해 데이터를 수집할 듯 하다.