[SPAC주 분석] 4. 기업 고유번호 받아오기
2023. 7. 11. 17:29ㆍ주식
1. 데이터 요청
- OPENDART의 API에 기업에 대한 데이터를 요청하기 위해서는 해당 기업의 고유번호가 필요함(종목코드랑 다름)
- "개발가이드" >"공시정보"로 들어가면 4번에 고유번호를 제공 받을 수 있는 가이드가 나와 있음.
- 요청URL에 요청인자를 전달하면 압축파일을 전달받는 구조

import requests
url = "https://opendart.fss.or.kr/api/corpCode.xml" # 요청URL
api_key = "your_api_key"
params = {
'crtfc_key': api_key # 요청인자
}
res = requests.get(url, params=params)
2. 압축파일 받아와서 압축 풀기
- copr_code.zip이라는 압축파일에 res에 담긴 내용 저장.(바이너리 파일이라 쓰기모드 "wb")
- zipfile 패키지를 이용하여 압축해제하면 CORPCODE.xml이라는 파일이 튀어나옴.
import zipfile
with open('corp_code.zip', 'wb') as f:
f.write(res.content)
zf = zipfile.ZipFile('corp_code.zip')
zf.extractall()

3. xml파일 파싱하기
- xml.etree이용
- <list>태그를 모두 찾기
import xml.etree.ElementTree as ET
tree = ET.parse('CORPCODE.xml')
root = tree.getroot()
tags_list = root.findall('list')
- list 태그를 넣으면 dict로 변환하는 함수 만들기
- 최종으로 dataframe형태로 만들기
- xml을 바로 데이터프레임으로 변환하는 거 찾아보면 있을거 같긴 함
def convert(elem: ET.Element) -> dict:
result_dict = {}
for child in list(elem):
result_dict[child.tag] = child.text
return result_dict
tag_list_dict = [convert(x) for x in tags_list]
df = pd.DataFrame(tag_list_dict)


'주식' 카테고리의 다른 글
[SPAC주 분석] 3. 전자공시 API (0) | 2023.07.11 |
---|---|
[SPAC주 분석] 2. 반환 예정 금액 확인하는 방법 (0) | 2023.07.10 |
[SPAC주 분석] 1. 코스닥에 상장된 스팩주 불러오기 (0) | 2023.07.10 |