2023.12.26 - [개발/주식 ( Python )] - Dart API를 이용하여 회사 정보 가져오기
Dart API를 이용하여 회사 정보 가져오기
1. Dart 회원가입 - https://opendart.fss.or.kr/uat/uia/egovLoginUsr.do - 인증키 신청으로 회원 가입 후 API KEY를 발급 받을 수 있다 - 발급 받은 API는 "마이페이지/오픈API 이용현황"에서 확인 가능하다 2. 회사 정
stupiddev.tistory.com
1. 회사 상세 정보 가져오기
#저장된 회사정보에서 상세 리스트 가져오기
def getCompanyInfoData(self):
dartKey = ""
corpInfo = "https://opendart.fss.or.kr/api/company.json"
# Dart API를 이용하여 나온 데이터 SELECT
# 회사 정보는 https://stupiddev.tistory.com/10 참조 해주세요.
param = {}
compnayDataList = dbInfo.select("selectCompanyList", param)
try :
i = 0
for compnayData in compnayDataList:
i = i + 1
# dartKey : Dart API Key
# corp_code : Dart에 설정된 회사 코드
reqParam = "?crtfc_key=" + dartKey + "&corp_code=" + compnayData[0]
res = requests.get(corpInfo + reqParam)
if res.ok :
jData = json.loads(res.text)
# status : 000 - API가 정상일 경우 상세 데이터 UPDATE
if jData["status"] == "000" :
# UPDATE를 위한 데이터 변수
param = {}
param["comCd"] = jData["corp_code"].replace(' ', '')
param["comEngNm"] = jData["corp_name_eng"]
#param["stockCd"] = jData["stock_code"].replace(' ', '')
param["stockNm"] = jData["stock_name"].replace(' ', '')
param["ceoNm"] = jData["ceo_nm"].replace(' ', '')
param["comCls"] = jData["corp_cls"].replace(' ', '')
param["jurirNo"] = jData["jurir_no"].replace(' ', '')
param["bizrNo"] = jData["bizr_no"].replace(' ', '')
param["comAdres"] = jData["adres"]
param["comUrl"] = jData["hm_url"].replace(' ', '')
param["irUrl"] = jData["ir_url"].replace(' ', '')
param["comPhnNo"] = jData["phn_no"].replace(' ', '')
param["comFaxNo"] = jData["fax_no"].replace(' ', '')
param["indutyCode"] = jData["induty_code"].replace(' ', '')
if jData["acc_mt"] == "" :
param["comAccMt"] = 0
else :
param["comAccMt"] = jData["acc_mt"].replace(' ', '')
param["updId"] = "batch"
param["updDt"] = "SYSDATE"
# WHERE 문 생성을 위한 변수
wParam = {}
wParam["comCd"] = jData["corp_code"].replace(' ', '')
dbInfo.update("TB_STOCK_COMP", param, wParam)
print(wParam)
except Exception as e:
print(e)
# 트래픽문제로 에러 발생으로 인한 wait 추가
time.sleep(1)
# 재귀함수 재 호출
self.getCompanyInfoData()
※ API 호출 결과 값
- jData = {'status': '000', 'message': '정상', 'corp_code': '', 'corp_name': '', 'corp_name_eng': 'PS Capital Partners', 'stock_name': '', 'stock_code': '', 'ceo_nm': '', 'corp_cls': 'E', 'jurir_no': '', 'bizr_no': '', 'adres': '', 'hm_url': '', 'ir_url': '', 'phn_no': '', 'fax_no': '', 'induty_code': '649', 'est_dt': '20171101', 'acc_mt': '12'}
※ 장.단점
- 장점 : API 개발이 편하다
- 단점 : 하루 호출 개수가 정해져 있어 무료로 사용시 전부 데이터 업데이트 할 경우 3~4일이 소요된다
'개발 > 주식 ( Python )' 카테고리의 다른 글
Dart API를 이용하여 회사 정보 가져오기 (0) | 2023.12.26 |
---|