IT is Smart

파이썬으로 인터넷의 주가정보 수집하기, get stock information from Internet 본문

Programming/Python Basic

파이썬으로 인터넷의 주가정보 수집하기, get stock information from Internet

달인최선 2016. 9. 9. 20:37
반응형

이번에는 인터넷에서 구할 수 있는 데이터 자료를 수집하는 방법에 대해서 알아보겠습니다.

여기서 설명하는 것은 하나의 사례로써 이외에도 다양한 다른 방법이 있습니다. 내용을 참조하신 후 적절한 상황에 활용하시기 바랍니다.


인터넷으로 쉽게 구할 수 있는 데이터로는 주가 정보가 있습니다. yahoo의 finance섹션에서는 특정기업의 주가정보를 csv파일로도 제공을 해주고 있는데 이 자료를 수집하는 사례를 알아보겠습니다.


아래와 같이 Yahoo의 Finance 섹션에 접속한 후 특정기업을 검색합니다. 아래의 경우는 Microsoft를 검색해 봤습니다. 

중간에 있는 베너 바로 위를 보면 Summary, Statistics, Profile, Financials, Options, Holders, Historical Data, Analysts 메뉴가 있습니다. 이 중에서 Historical Data를 선택하면 아래와 같이 일자별 주가 표가 나타납니다.

표의 우측 상단을 보시면 Download Data라는 링크가 있는데 여기를 마우스 우클릭으로 해서 링크 주소를 복사합니다. (크롬 브라우저 기준)

제 경우는 

http://chart.finance.yahoo.com/table.csv?s=MSF.BE&a=7&b=9&c=2016&d=8&e=9&f=2016&g=d&ignore=.csv

이렇게 주소가 나왔습니다.


해당 링크를 클릭해보니 table.csv파일이 다운로드 되었고, 파일을 열어보니 아래와 같이 데이터가 저장되어 있었습니다.


방금은 직접 마우스로 해당 파일을 다운로드 받은 것이고, 이번에는 해당 파일을 파이썬 코드로 가져와 보겠습니다.

from urllib import request

microsoft_url = 'http://chart.finance.yahoo.com/table.csv?s=MSF.BE&a=7&b=9&c=2016&d=8&e=9&f=2016&g=d&ignore=.csv'

def download_stock_data(csv_url):
    response = request.urlopen(csv_url)
    csv = response.read()
    csv_str = str(csv)
    lines = csv_str.split("\\n")
    dest_url = r'microsoft.csv'
    fx = open(dest_url, "w")
    for line in lines:
        fx.write(line + "\n")
    fx.close()

download_stock_data(microsoft_url)

위의 코드를 작성한 후 실행해 보면 해당 경로에 microsoft.csv 파일이 생성된 것을 확인할 수 있습니다.

위의 주소 부분을 분석해 보면 원하는 기업의 코드와 원하는 기간에 대한 주소를 생성해서 호출하면 해당 정보를 자동으로 수집할 수 있다는 것을 알 수 있습니다.


--------------------
Source Code from thenewboston Tutorials
좋은 코드는 볼수록 Insight를 주고, 반복할수록 내 것과 같이 된다.




반응형