0. 오랜만에 코딩 카테고리에 글을 쓴다. 별건 아니고 코드도 대충 루프 돌리는 것이긴 한데, 켜놓고 다른 거 하다 보면 끝나니까 뭐 필요한 사람이 있을 수도...?
1. 공식 영문 기업명 리스트를 가져오고 싶었는데, 제공하는 곳을 못 찾아서 작성한 코드, 사용한 패키지는 아래와 같다.
import re, os, requests
import pandas as pd
import dart_fss as dart
from bs4 import BeautifulSoup
기본적인 세팅
api = 'xxx'
dart.set_api_key(api_key=api)
cwd = os.getcwd()
url = 'https://opendart.fss.or.kr/api/company.xml?'
df = pd.DataFrame(columns=['기업명','영문기업명','종목코드','법인등록번호','사업자등록번호','업종코드'])
다트에서 제공되는 기업 목록 불러와서 전부 루프로 돌린다. 다 돌릴 필요가 없으면 리스트만 수정해서 넣어주면 될 듯
corp_list = dart.get_corp_list()
for corp in corp_list:
corp_code = re.search(r'\[([^\[\]]*)\]', str(corp))
# [000000]기업명 형식이라 작성, 코드만 넣을 때는 필요 없음
if corp_code:
corp_code = corp_code.group(1)
response = requests.get(f'{url}crtfc_key={api}&corp_code={corp_code}')
soup = BeautifulSoup(response.text,'lxml')
corp_name = soup.find('corp_name').text
corp_name_eng = soup.find('corp_name_eng').text
stock_code = soup.find('stock_code').text
jurir_no = soup.find('jurir_no').text
bizr_no = soup.find('bizr_no').text
induty_code = soup.find('induty_code').text
df.loc[len(df)] = {
'기업명': corp_name,
'영문기업명': corp_name_eng,
'종목코드':stock_code,
'법인등록번호':jurir_no,
'사업자등록번호':bizr_no,
'업종코드': induty_code
}
else:
corp_name = 'Error'
corp_name_eng = 'Error'
stock_code = 'Error'
jurir_no = 'Error'
bizr_no = 'Error'
induty_code = 'Error'
df.loc[len(df)] = {
'기업명': corp_name,
'영문기업명': corp_name_eng,
'종목코드':stock_code,
'법인등록번호':jurir_no,
'사업자등록번호':bizr_no,
'업종코드': induty_code
}
결과는 다음과 같다.
![](https://blog.kakaocdn.net/dn/cMNcaH/btsk9EiMimp/za2rPTutx2W9JUPp6r7z20/img.png)
혹시 그냥 다운로드 가능한데 제가 뻘짓한 거라면 좀 알려주세요, 끝
3. 하지만 뻘짓이었습니다.
거래소 정보데이터시스템 - 주식 - 전 종목 기본정보에 다 있었다.
http://data.krx.co.kr/contents/MMC/MAIN/main/index.cmd
KRX 정보데이터시스템
증권·파생상품의 시장정보(Marketdata), 공매도정보, 투자분석정보(SMILE) 등 한국거래소의 정보데이터를 통합하여 제공 서비스
data.krx.co.kr
반응형
'코딩' 카테고리의 다른 글
파이썬 네이버 금융 업종 스크래핑 (0) | 2022.01.08 |
---|---|
파이썬 네이버 주식 매매동향 스크랩 (0) | 2022.01.08 |
파이썬 네이버 금융 기업 정보 스크랩 (0) | 2022.01.07 |
파이썬으로 주식 정보 스크래핑하기 (0) | 2022.01.07 |
함수 적용해보기 (0) | 2021.10.23 |