728x90
주식관련 프로그램(앱)을 개발하는 도중 실시간으로 주식데이터를 어떻게 가져올까 고민하던도중
파싱을 통해 데이터를 가져오고자 해결방법이 떠올랐다.
간단하게 전체과정을 설명하자면
pandas를 통해 전체상장된 주식들에 대한 종목명:종목코드를
엑셀로 알맞게 저장한다음
이름을 검색하면 그에 대한 종목코드를 반환하여
finance.naver.com/item/sise_day.nhn?code=!!!종목코드!!!
로 들어가 해당 주식에대한 날짜 종가 시가 고가 거래량 등등을 저장한다
1. pandas라이브러리 설치하기
python -m pip install --upgrade pip ( pip 는 항상 먼저 업그레이드하는 습관.,...)
pip install pandas ( 판다르 라이브러리 설치)
http://kind.krx.co.kr/corpgeneral/corpList.do?method=download&searchType=13
위에 링크는 한국증권거래소에서 제공하는 상장법인목록 엑셀파일이다.
import pandas as pd
#모든 상장된 주식에 대한 종목명,종목코드 등등 여러정보를 담고있는 엑셀파일
stock_code = pd.read_html('http://kind.krx.co.kr/corpgeneral/corpList.do?method=download', header=0)[0]
#우리에게 필요한정보는 회사명:종목코드 이므로 나머지 데이터들은 제거
stock_code = stock_code[['회사명', '종목코드']]
#종목코드는 6자리이므로 6자리로 format
stock_code.code = stock_code.code.map('{:06d}'.format)
company='LG화학'
#LG화학의 종목코드를 code에 담는다.
code = stock_code[stock_code.company==company].code.values[0].strip() ## strip() : 공백제거
#크롤링할때 page=1,2,3,4,5....인데 한페이지의 데이터만 크롤링할거라 page는 1로 저장
page = 1
#이부분은 직접 code부분에 상장코드를 들어가보면 이해가 될것이다. code부분을 code로 foramt
url = 'http://finance.naver.com/item/sise_day.nhn?code={code}'.format(code=code)
#url 에 page추가 1페이지당 약4~5일? 의 데이터들이 담겨있음
url = '{url}&page={page}'.format(url=url, page=page)
print(url)
#html을 불러옴
df = pd.read_html(url, header=0)[0]
#출력
df.head()
df = pd.DataFrame()
for page in range(1,21):
url = 'http://finance.naver.com/item/sise_day.nhn?code={code}'.format(code=code)
url = '{url}&page={page}'.format(url=url, page=page)
print(url)
df = df.append(pd.read_html(url, header=0)[0], ignore_index=True)
#공휴일, 거래정지등 NaN값이 있을것같아서 결측값이 있는 행을 제거함
df = df.dropna()
#df에 담긴 10개의 데이터 출력
df.head(10)
#df.to_excel('lg화학df.xlsx')
LG화학의 주가데이터파일이 잘출력된다.
df.to_excel('lg화학df.xlsx') 코드를 마지막에 추가하면 df을 엑셀파일로 저정할수있다. (pandas 데이터프레임을 엑셀로 저장하기)
엑셀파일로 성공적으로 저장했으며
데이터프레임도 잘 저장되어있다.
for반복문에 범위만 바꾸면 2020-01-29이전의 데이터들도 모두 저장할수있다.
728x90
'안드로이드' 카테고리의 다른 글
안드로이드 스튜디오 AsyncTask 사용하기. / 안드로이드 스튜디오 백그라운드 실행 (0) | 2020.11.16 |
---|---|
파이썬 코스피지수 실시간으로 크롤링하기 (beautifulsoup) (0) | 2020.11.16 |
초간단) 안드로이드 스튜디오 레이아웃 표시선 긋기 (0) | 2020.11.16 |
모바일 앱개발을 위한 안드로이드 스튜디오 설치방법 ) 2020-11-14 (0) | 2020.11.14 |
안드로이드스튜디오 3초컷 상태바 제거 (0) | 2020.08.24 |