내가 만든 코딩이 너무 쓰레기 같아서 인터넷에서 남들이 만들어둔 게 있나 찾아봤다.
그러다가 어느 블로그에서 아주 깔끔하게 정리되어 있어서 더 이상 만들지 않고 참고해서 사용하기로 했다.
실행할 때 오류가 뜨길래 몇 가지를 바꿔줬다..
item_names = ["고유번호","정식명칭","영문명칭","종목명","종목코드","대표자명","법인구분","법인등록번호","사업자등록번호","주소","홈페이지","IR홈페이지","전화번호","팩스번호","업종코드","설립일","결산월"]
if __name__ == '__main__': #import된 게 아니고 메인에서 실행되고 있으면 아래를 실행
#crtfc_key = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" #이걸 사용하면 결과가 무조건 삼성전자, 1건만 나온다. 정상적인 검색을 원하면 나의 key를 입력해야 한다.
corp_code = "00362201" #(세운메디컬) #회사고유번호, 8자리로는 안나온다. 앞에00제거 6자리로 검색. ※ 개발가이드 > 공시정보 > 고유번호 API조회 가능
bgn_de = "20100101" #시작일, 없으면 종료일
end_de = "" #종료일, 없으면 당일
last_reprt_at = "" #최종보고서만 검색여부(Y or N) 기본값 : N
pblntf_ty = "A" #이렇게 써야 애러가 안난다. #A : 정기공시, B : 주요사항보고, C : 발행공시, D : 지분공시, E : 기타공시, F : 외부감사관련, G : 펀드공시, H : 자산유동화, I : 거래소공시, j : 공정위공시
pblntf_detail_ty = "" #공시상세유형 (※ 상세 유형 참조 : pblntf_detail_ty)
corp_cls = "" #없으면 전체조회, 법인구분 : Y(유가), K(코스닥), N(코넥스), E(기타)
sort = "" #정렬, 접수일자: date, 회사명 : crp, 보고서명 : rpt, 기본값 : date
sort_mth = "" #정렬방법, 오름차순(asc), 내림차순(desc) 기본값 : desc
page_no = "100" #페이지 번호(1~n) 기본값 : 1
page_count = "100" #페이지당 건수(1~100) 기본값 : 10, 최대값 : 100
#######################################################################################
bsns_year = "2018" #사업연도(4자리)
reprt_code = "11013" #1분기보고서 : 11013, 반기보고서 : 11012, 3분기보고서 : 11014, 사업보고서 : 11011
"""
#기업 고유번호 크롤링
#url = "https://opendart.fss.or.kr/api/corpCode.xml"
crtfc_key = "3e78bc8cbf42f208c46943b3fbca3f739ca578a4" #여기서 x40개를 날리면 삼성전자 1개만 응답온다.
retsult_corpcode = get_corpcode(crtfc_key)
#retsult_corpcode.to_excel('z://corpcode.xlsx', sheet_name='Sheet1')
print(retsult_corpcode)
"""
"""
#단일회사 및 다중회사 주요계정, 단일회사 전체 재무제표를 가져올 때 공통으로 쓰이는 함수입니다.
url = "https://opendart.fss.or.kr/api/fnlttSinglAcnt.json" #단일회사
#url = "https://opendart.fss.or.kr/api/fnlttMultiAcnt.json" #다중회사
params = {'crtfc_key':crtfc_key,'corp_code':corp_code,'bsns_year':bsns_year,'reprt_code':reprt_code}
items = ["bsns_year","stock_code","reprt_code","account_nm","fs_div","fs_nm","sj_div","sj_nm","sj_nm","thstrm_nm","thstrm_dt","thstrm_amount","thstrm_add_amount","frmtrm_nm","frmtrm_dt","frmtrm_amount","frmtrm_add_amount","bfefrmtrm_nm","bfefrmtrm_dt","bfefrmtrm_amount"]
item_names = ["사업연도","종목코드","보고서코드","계정명","CFS/OFS","구분1","BS/IS","구분2","재무제표명","당기명","당기일자","당기금액","당기누적금액","전기명","전기일자","전기금액","전기누적금액","전전기명","전전기일자","전전기금액"]
retsult_convertFnltt = convertFnltt(url, items, item_names, params)
#retsult_convertFnltt.to_excel('z://retsult_convertFnltt.xlsx', sheet_name='Sheet1')
print(retsult_convertFnltt)
"""
#단일회사 주요계정
retsult_fnlttSinglAcnt = get_fnlttSinglAcnt(crtfc_key, corp_code, bsns_year, reprt_code)
#retsult_fnlttSinglAcnt.to_excel('z://retsult_fnlttSinglAcnt.xlsx', sheet_name='Sheet1')
print(retsult_fnlttSinglAcnt)
"""
#다중회사 주요계정
retsult_fnlttMultiAcnt = get_fnlttMultiAcnt(crtfc_key, corp_code, bsns_year, reprt_code)
#retsult_fnlttMultiAcnt.to_excel('z://retsult_fnlttMultiAcnt.xlsx', sheet_name='Sheet1')
print(retsult_fnlttMultiAcnt)
"""
"""
#단일회사 전체 재무제표
retsult_fnlttSinglAcntAll = get_fnlttSinglAcntAll(crtfc_key, corp_code, bsns_year, reprt_code, fs_div = "CFS")
#retsult_fnlttSinglAcntAll.to_excel('z://retsult_fnlttSinglAcntAll.xlsx', sheet_name='Sheet1')
print(retsult_fnlttSinglAcntAll)
"""
"""
#공시검색
#retsult_list = get_list(crtfc_key, corp_code="", bgn_de="", end_de="", last_reprt_at="", pblntf_ty="", pblntf_detail_ty="", corp_cls="", sort="", sort_mth="", page_no="", page_count="")
retsult_list = get_list(crtfc_key, corp_code=corp_code, bgn_de=bgn_de, end_de=end_de, last_reprt_at=last_reprt_at, pblntf_ty=pblntf_ty, pblntf_detail_ty=pblntf_detail_ty, corp_cls=corp_cls, sort=sort, sort_mth=sort_mth, page_no=page_no, page_count=page_count)
#retsult_list.to_excel('z://retsult_list.xlsx', sheet_name='Sheet1')
print(retsult_list)
"""
"""
#기업개황
retsult_company = get_company(crtfc_key,corp_code)
#retsult_company.to_excel('z://retsult_company.xlsx', sheet_name='Sheet1')
print(retsult_company)
"""