ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [기업정보 크롤링] #2 공시정보 고유번호 받아오기
    투자/OpenDART 2020. 3. 14. 02:11

    OPENDART 개발가이드의 API들을 살펴보면 '고유번호'라는 요청인자가 필요하다. (8자리 코드를 사용한다. 종목코드와는 별도)

    내가 원하는 기업의 정보를 API를 통해 받아오려면 해당 기업의 고유번호를 알아야 한다는 것이다.

     

    그렇다면 고유번호는 어떻게 알 수 있을까? 이 역시도 API로 제공한다.

    공시정보 -> 4.고유번호 항목을 보자. 상세기능을 보면 몇가지 기본정보를 파일로 제공한다고 되어있다. 

     

    이 API는 #1에서 발급받은 API key만 넣으면 기업정보를 Zip파일로 제공한다. 

     

    이 API를 호출하여 파일을 다운받고, 압축을 풀어서 내용을 확인해 보자. 나는 Visual Studio Code를 사용했다. 

    # st3adyPrac@gmail.com
    # 공시정보 - 고유번호(4)
    
    from urllib import request
    from zipfile import ZipFile
    import ssl, os
    	
    context = ssl._create_unverified_context()
    
    API_KEY="발급받은API키를입력"
    url = "https://opendart.fss.or.kr/api/corpCode.xml?crtfc_key="+API_KEY
    print("요청주소 : " + url)
    
    data = request.urlopen(url, context=context)
    filename = data.info().get_filename()
    print("파일명 : " + filename)
    
    with open(filename, 'wb') as f:
        f.write(data.read())
        f.close
    
    print("다운로드 완료.")
    
    with ZipFile(filename, 'r') as zipObj:
       zipObj.extractall('./') # 현재 디렉토리에 압축을 해제
    
    if os.path.isfile(filename):
      os.remove(filename) # 원본 압축파일 삭제
    

     

    위 코드는 API를 호출하여 공시대상회사에 대한 정보를 다운로드 받고, 다운받은 zip파일의 압축을 해제한다.  

    정상적으로 API 호출이 됐다면, 현재폴더에 CORPCODE.xml 이라는 파일이 생겼을 것이다.

     

    <?xml version="1.0" encoding="UTF-8"?>
    <result>
        <list>
            <corp_code>00434003</corp_code>
            <corp_name>다코</corp_name>
            <stock_code> </stock_code>
            <modify_date>20170630</modify_date>
        </list>
        <list>
            <corp_code>00434456</corp_code>
            <corp_name>일산약품</corp_name>
            <stock_code> </stock_code>
            <modify_date>20170630</modify_date>
        </list>
        ...

     

    파일 내용은 API 상세기능에 명시된 것과 같이 고유번호/회사명/종목코드(상장기업)/최근변경일자로 이루어진다. (대표자명은 없다)

    회사별 고유번호를 추출했으니 이 정보를 이용해 다른 OPENDART API를 호출할 수 있다!

     

    다음번 포스팅에서는 CORPCODE.xml 의 내용을 검색하여 원하는 기업의 정보만을 추출하는 법을 알아보겠다. 

    댓글

Designed by Tistory.