DATA 전문가로 가는 길

[Python] 주식 시세 데이터 (Yahoo Finance, ystockquote) 본문

Programming/Python

[Python] 주식 시세 데이터 (Yahoo Finance, ystockquote)

EstenPark 2016. 4. 8. 00:28

Yahoo Finance를 활용 해서 시세 데이터를 가져오는 방법 입니다. Python 문서를 찾아보면 기본적으로 제공하는 API가 있습니다. 따라서 import 해서 사용하면 간단하게 데이터를 수집할 수 있습니다.




ystockquote python module을 이용해서 삼성전자의 시세 데이터를 가져오도록 하겠습니다. 우선 ystockquote를 리눅스에서 설치하고, Python에서 사용하면 됩니다.


1. ystockquote 설치

  
[python@localhost ~]$ git clone git://github.com/cgoldberg/ystockquote.git
[python@localhost ~]$ cd ystockquote
[python@localhost ystockquote]$ python setup.py install
[python@localhost ystockquote]$ python -m unittest discover


2. 삼성전자 시세 데이터 가져오기

  
[python@localhost ystockquote]$ python
Python 3.5.1 (default, Apr  5 2016, 15:01:37) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-4)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import ystockquote
>>> print(ystockquote.get_price_book('005930.KS'))
1.08


3. 삼성전자 시가, 고가, 저가, 종가 기간별 가져오기

 
[python@localhost ystockquote]$ python
Python 3.5.1 (default, Apr  5 2016, 15:01:37) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-4)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import ystockquote
>>> from pprint import pprint
>>> pprint(ystockquote.get_historical_prices('005930.KS', '2016-04-01', '2016-04-08'))
{'2016-04-01': {'Adj Close': '1279000.00',
                'Close': '1279000.00',
                'High': '1309000.00',
                'Low': '1271000.00',
                'Open': '1299000.00',
                'Volume': '271100'},
 '2016-04-04': {'Adj Close': '1305000.00',
                'Close': '1305000.00',
                'High': '1305000.00',
                'Low': '1279000.00',
                'Open': '1279000.00',
                'Volume': '188000'},
 '2016-04-05': {'Adj Close': '1260000.00',
                'Close': '1260000.00',
                'High': '1299000.00',
                'Low': '1260000.00',
                'Open': '1299000.00',
                'Volume': '236000'},
 '2016-04-06': {'Adj Close': '1285000.00',
                'Close': '1285000.00',
                'High': '1291000.00',
                'Low': '1268000.00',
                'Open': '1269000.00',
                'Volume': '184200'}}

간단하게 주식 데이터를 가져오는 방법이며, 데이터를 파싱하는 방법과 대용량 데이터를 적재하는 방법까지 차례대로 진행 하겠습니다.






Comments