레이블이 API인 게시물을 표시합니다. 모든 게시물 표시
레이블이 API인 게시물을 표시합니다. 모든 게시물 표시

목요일, 5월 02, 2024

Open Dart 활용하기 (1)

오늘은 전공 대신에 데이터 수집 관련한 내용을 올리려고 합니다.

데이터 수집 하는 테스트 하는데에 주식정보 만큼 좋은게 없어서 한번 

투자공부하는 겸사겸사 dart 사이트에 제공하는 open dart를 활용하는 사용기를 시리즈로 올려보려고 합니다.

오늘은 그중에서 첫번째로 보통 국내 주식은 6자리 숫자 코드로 되어 있는데 open dart에서는 8자리의 별도 기업 코드를 사용하고 있어서 먼저, 그 기업코드를 확보해보도록 하겠습니다.

기업코드는 zip파일로 제공되고 있다고 >여기<에서 설명하고 있습니다.

결론적으로 API Key를 발급받아 crtfc_key=항목에 넣어주고 브라우저의 주소창에 넣어주면

corpCode.xml 파일을 다운로드 받을 수 있습니다.

https://opendart.fss.or.kr/api/corpCode.xml?crtfc_key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

저장된 파일은 corpCode.xml이라고 하지만 사실은 zip로 압축된 파일!!

파일이름을 corpCode.xml에서 corpCode.zip 으로 변경해주고 압축을 해제하면 우리가 찾는 기업코드를 품고 있는 xml파일을 확인할 수 있습니다.

이 xml 파일에는 약 10만개정도의 기업코드가 기록되어 있는데.. 이는 상장회사 뿐만 아니라 dart에 공시를 올리는 모든 회사의를 구별하기 위한 코드입니다.


xml파일에서 필요한 정보(기업코드)를 뽑아서 tab delimited 파일을 생성하는 스크립트를 작성해보도록 하겠습니다.


import xml.etree.ElementTree as ET

# XML 파일 읽기

tree = ET.parse("CORPCODE.xml")

root = tree.getroot()

# 결과를 저장할 딕셔너리 생성

result = {}

# XML 파일의 각 리스트 항목을 순회

for item in root.findall("list"):

    # 회사 이름, 회사 코드, 주식 코드 추출

    corp_name = item.find("corp_name").text

    corp_code = item.find("corp_code").text

    stock_code = item.find("stock_code").text

    # 딕셔너리에 추가

    if stock_code.strip() == '':

        stock_code = '-'

    else:

        pass   

    result[corp_code] = {"corp_name":corp_name, "stock_code": stock_code}

ow = open('CORPCODE.txt','w')

for key, value in result.items():

    #print (f"{value['stock_code']}\t{value['corp_name']}\t{key}")

    ow.write(f"{value['stock_code']}\t{value['corp_name']}\t{key}\n")

ow.close()

    

상장사의 경우 주식코드, 회사명, 기업코드 정보들 담은 CORPCODE.txt 파일을 생성 할 수 있습니다.

다음번에는 조금 더 유용한 코드를 가지고 다시 돌아오도록 하겠습니다. :)


출처: @ye._.vely618 


일요일, 4월 28, 2024

NCBI API Key 발급받기

생명정보학을 하는 사람뿐만 아니라 생명공학을 전공하는 공부하는 사람들은 NCBI를 활용하지 않을 수 없는 시대에 왔습니다.

아마 생명공학을 전공한다면 이전에는 하얀까운 입고 클린벤치앞에서 파이펫가지고 실험하는 생각이 지배적이었는데 조만간 컴퓨터 화면앞에서 까만 화면앞이나 웹사이트를 이리저리 오가면서 분석하는 것이 더 익숙해질지도 모르겠습니다.

그래서 오늘은 오랜만에 NCBI를 활용할 때 대량의 데이터를 다운받을 때 API를 사용할 수 있게 해주는 API Key를 발급받는 방법을...

사실 저도 API Key를 받아가면서 다운로드 받지 않았는데..

이제는 그러지 않고는 NCBI에서 너님좀 그만 접속해라는 status만 return하고 정작 제가 원하는 자료들은 넘어오지 않아서 API Key를 발급 받을 수 밖에 없었습니다. 

Orz

여튼 그래서 구글님에서 "NCBI의 API Key를 발급 받으려면 어떻게 해야하나요?"

라고 검색해보면 다음과 같은 링크하나 떨궈 줍니다.

> 여기요 <

위에 URL에 나와있는 대로 회원 가입하고 발급받으시면 됩니다. :)

혹시나하고 아래와 같이 스샷들을 첨부하였읜 참고해서 잘 받으시기 바랍니다.


목록중에 있는 외부 계정 활용해서 로그인 하시면 되겠습니다. 전 구글을 잘 이용합니다.


브라우저에 구글 계정이 설정되어 있으면 이 계정으로 계속 할꺼야? 라고 물어봅니다. 다른 계정하고 싶으시면 아래 [다른 계정 사용]을 클릭해서 진행 하시면 되겠습니다.


그럼 선택하신 계정을 사용해서 nih.gov 서비스를 사용하실 수 있게 됩니다. [계속] 버튼을 클릭하시면 되겠습니다.


새로 계정 만들래, 기존 계정에 연결할래? 음.. 계정 생성의 복잡도를 생각해서 그냥 새로 계정을 만드시는게 편하지 않을까합니다. 


축하드립니다. NCBI 계정을 본인 계정을 사용해서 로그인 하실 수 있게 되었습니다.

단, 우리의 목적은 NCBI 계정 탈.. 생성이 아니라 API Key 발급이었죠? 상단 우측의 Accout를 클릭하면 [Account Settings] 라는 메뉴에 들어갈 수 있습니다.

현재 API Key가 없는 것을 알 수 있고, 친절히 [Creat API Keys] 버튼이 큼직만하게 있습니다. 이 버튼을 클릭하시면...

그냥 API Key가 만들어집니다. :)



그럼 주말 저녁 잘 마무리하시기 바랍니다. :)







출처: @ye._.vely618