본문 바로가기
크롤링/파이썬 주식 크롤링

[파이썬을 이용한 주식 크롤링] 5.증권플러스 재무제표 가져오기 (3)

by 만다린망고 2020. 7. 22.
반응형

[파이썬을 이용한 주식 크롤링] 4. 증권플러스 재무제표 가져오기 (3)


지난 시간까지 만든 코드는 아래와 같습니다. 오늘은 아래 코드를 원하는 종목의 코드와 결과를 입력하면 그래프를 출력해주도록 변형할 것입니다. 연간 데이터를 볼지 분기별 데이터를 볼지도 선택하도록 합니다. 아래와 같이 수정하였습니다. 3강에서 만든 코드와 비교하며 공부해보시면 됩니다. 


수정한 부분은 빨간색으로 변경하였고, 주석으로 설명하겠습니다. 


import json

import urllib.request as req 

import pandas as pd

import requests

from bs4 import BeautifulSoup

from matplotlib import pyplot as plt

from matplotlib import font_manager, rc


#종목코드

item_code='005390'

#분기 or 연도 선택

yorq='yearly'

#궁금한 지표

output='ownersNetProfit'


#재무데이터 가져오기, %s 를 이용하여 종목을 변수로 입력

myurl='https://stockplus.com/api/companies/KOREA-A%s/financial_statements.json'

myurl=myurl % item_code

data= req.urlopen(myurl).read()

dataj = json.loads(data.decode('utf-8'))

tab=pd.DataFrame(dataj[yorq])



#연도 값 간단히 만들기

for i in range(len(tab.loc[:,['baseDate']])):

    tab.loc[i,['baseDate']]=tab.loc[i,['baseDate']].str.slice(start=0,stop=4,step=1)


#종목 이름 가져오기

url_name=requests.get("https://finance.naver.com/item/main.nhn?code=005930").text

soup=BeautifulSoup(url_name,"html.parser")

name=soup.select("div.wrap_company a")[0].get_text()


#한글 출력 가능하게함

my_font = font_manager.FontProperties(fname="c:/Windows/Fonts/malgun.ttf").get_name()

rc('font', family=my_font)


#x,y값 설정

x_dt='baseDate'

y_dt=output


#그래프 그리기

plt.xticks(rotation=45)

plt.bar(tab[x_dt],tab[y_dt])

plt.title(name+' '+y_dt)

plt.show()


아래는 결과입니다. 



output에 입력할 수 있는 값들은 아래와 같습니다. 



output 변수를 per로 바꿔봅시다. 



작동을 잘 합니다. 이번에는 분기별 정보를 확인해봅시다.  yorq 변수를 yearly 에서 quarterly 로 바꾸면 됩니다. 


그.런.데


문제가 생겼습니다. 날짜를 단순히 연도만 남긴 숫자로 만들었기 떄문에 분기로 할 경우 x값이 중복됩니다. 시계열로 바꿔줘야 할 것 같네요. 다음시간에 시계열로 바꿔주겠습니다. 




반응형

댓글