반응형
- 배경
과거 라이브러리 사용 대신에 직접 크롤링하여 주가 데이터를 수집하려고 했다.
그래서 네이버 금융을 통해 수집하려 했으나, 코스피와 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)
df=df[['cd','dt','ov','ncv','cv','cr']] #특정 열 선택
df = df.rename(columns={'cd':'code',"dt":"date",'ov':'open','ncv':'close','cv':'diff','cr':'rate'}) #열 이름 변경
print(df)
기본적으로 저번 포스팅에 있던 코드와 비슷하나
for문의 마지막 2줄에서 미국 증시 데이터와 형식을 맞추기 위해
특정 열을 원하는 이름으로 바꾸어 데이터를 저장하였다.
- 미국 증시 데이터 수집
from bs4 import BeautifulSoup
import pandas as pd
import urllib.request as req
import requests
df=[]
symb=[]
xymd=[]
open=[]
close=[]
diff=[]
rate=[]
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,100):
url="https://finance.naver.com/world/worldDayListJson.naver?symbol=SPI@SPX&fdtc=0&page="+str(i)
data = requests.get(url,headers=headers)
value= data.json()
#01
for j in range(len(value[0])):
symb.append(value[j]["symb"])
xymd.append(value[j]["xymd"])
open.append(value[j]["open"])
close.append(value[j]["clos"])
diff.append(value[j]["diff"])
rate.append(value[j]["rate"])
#02
df=pd.DataFrame({"code":symb, "date":xymd,"open":open,"close":close,
"diff":diff,"rate":rate})
print(df)
#01 : 핵심은 이것이다. json 형태이기에 바로 pd.DataFrame을 사용하면 정상적으로 데이터를 사용할 수 없다.
그렇기에, 각각의 요소들을 list에 따로 저장한다.
#02 : 최종적으로 다시 형식에 맞춰 데이터프레임화 시킨다.
+ 위의 코드는 S&P500인데, 다우존스와 나스닥도 위의 url부분만 수정하면 데이터를 얻을 수 있다.
- 결과
이렇게 같은 형식으로 데이터를 얻을 수 있었다.
참고로 데이터의 기간은 for문의 범위를 통해 조절이 가능하다.
'IT지식 > 빅데이터' 카테고리의 다른 글
토이프로젝트 - (4) 상관계수와 선형회귀 (2) | 2023.05.28 |
---|---|
토이프로젝트 - (3) 결측치 확인 및 처리 (1) | 2023.05.20 |
토이프로젝트 - (1) 데이터 수집 (코스피 크롤링) (2) | 2023.05.03 |
데이터분석 - 토이프로젝트 계획(주가 지수의 관계) (2) | 2023.03.31 |
[정보] 빅데이터 자격증 - 종류 및 설명 (with 유효기간) (4) | 2022.11.21 |