728x90
금융감독원 API가 전면 개편되었다. 공시정보, 사업보고서 주요정보, 상장기업 재무정보, 지분공시 종합정보로 더욱 세분화되고 더 많은 데이터를 제공하기로 했다.
위 사이트에 접속해서 인증키를 신청해서 발급받으면 API를 사용할 수 있다.
기존의 공시API와 비교하여 불편한 점은 기존의 종목코드를 Input값으로 넣지 않고 기업의 고유번호를 입력하게 바뀌었다. 비상장기업까지 조회할 수 있게 하기 때문인 것 같다. 따라서 제일 먼저 해야할 일은 기업의 고유번호를 알아내는 일이다.
응답 방식이 zip – FILE(Stream) 방식이다. 압축파일로 제공한다는 뜻이다. 이를 파이썬으로 구현하는 방법은 다음과 같다.
from bs4 import BeautifulSoup
import pandas as pd
import requests
from io import BytesIO
from zipfile import ZipFile
def get_company_code(api_key):
url = 'https://opendart.fss.or.kr/api/corpCode.xml?crtfc_key=%s' % api_key
response = requests.get(url)
zip_file = ZipFile(BytesIO(response.content))
files = zip_file.namelist()
soup = ''
with zip_file.open(files[0]) as csvfile:
soup = BeautifulSoup(csvfile.read(), 'lxml')
soup = soup.findAll('list')
data = []
for company in soup:
data.append({
'corp_code': company.corp_code.text,
'corp_name': company.corp_name.text,
'stock_code': company.stock_code.text,
'modify_date': company.modify_date.text
})
return pd.DataFrame(data)
if __name__ == '__main__':
api_key ='*'
company_code = get_company_code(api_key)
print(company_code)
결과 값
corp_code corp_name stock_code modify_date
0 00434003 다코 20170630
1 00434456 일산약품 20170630
2 00430964 굿앤엘에스 20170630
3 00432403 한라판지 20170630
4 00388953 크레디피아제이십오차유동화전문회사 20170630
... ... ... ... ...
76579 00129235 삼화왕관 004450 20191104
76580 01416721 에이치에스하이엘 20191104
76581 01414477 메가드림 20191104
76582 01415573 에스제이 20191104
76583 00436144 유코카캐리어스 20200118
728x90
'Data Science > Data Collection' 카테고리의 다른 글
[04. 금융감독원 API] 003. 공시정보 – 공시검색 (0) | 2020.02.14 |
---|---|
[04. 금융감독원 API] 002. 공시정보 – 기업개황 (0) | 2020.02.13 |
[03. API] 002. FinanceDataReader (0) | 2020.02.12 |
[03. API] 001. Pandas Datareader (0) | 2020.02.12 |
[02. 웹크롤링] 004. 38커뮤니케이션 – IPO 데이터 (0) | 2020.01.12 |