• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

fdr.StockListing("KRX") 오류

21.05.22 15:46 작성 조회수 430

1

KRX 종목을 불러올때마다 이런 문제가 생기는데 어떻게하면 좋을까요? 참고로 KOSPI를 불러 올때도 동일한 문제가 생깁니다

답변 3

·

답변을 작성해보세요.

1

jhdia님의 프로필

jhdia

질문자

2021.05.23

fdr 버전 업그레이드를 하니까 해결되네요. 감사합니다

잘 해결되었다니 다행이네요! 감사합니다 :)

1

안녕하세요.

이용에 불편을 드려 죄송합니다.

오늘 KRX 홈페이지 시스템 점검으로 인해 KRX를 받아오는 일부 코드가 동작하지 않고 있습니다.

해당 실습은 KRX 사이트를 통해 실시간으로 데이터를 가져와서 실습을 하도록 구성되어 있어서 시스템 정기점검 부분에 대해 미리 대처하지 못한 부분에 대해 사과드립니다.

전체 데이터는 점검기간 후에 가져와서 실습을 진행해주시는것을 부탁드리며, 그 전에 일부 KRX종목 데이터를 불러오고자 한다면 아래의 코드를 실행해 주세요.

df_krx = fdr.StockListing("KRX")
<<<== 이 코드 대신 아래의 코드를 사용하시면 KRX 일부 종목을 가져올 수 있습니다.
아래의 코드는 나중에 일별 시세 수집에서 다루게 될텐데
fdr.StockListing 의 내부에서는 판다스를 통해 데이터를 읽어옵니다.
아래의 코드를 한 줄로 사용할 수 있도록 만들어진것이 파이낸스데이터리더인데요.
점검시간 전에 아래의 코드로 데이터를 불러오면 2445개의 종목을 가져오실 수 있습니다.

url = 'http://kind.krx.co.kr/corpgeneral/corpList.do?method=download&searchType=13'
df_listing = pd.read_html(url, header=0)[0]
cols_ren = {'회사명':'Name', '종목코드':'Symbol', '업종':'Sector', '주요제품':'Industry',
'상장일':'ListingDate', '결산월':'SettleMonth', '대표자명':'Representative',
'홈페이지':'HomePage', '지역':'Region', }
df_listing = df_listing.rename(columns = cols_ren)
df_listing['Symbol'] = df_listing['Symbol'].apply(lambda x: '{:06d}'.format(x))
df_listing['ListingDate'] = pd.to_datetime(df_listing['ListingDate'])
df_krx = df_listing

다시한번 이용에 불편을 드려 죄송합니다.

0

안녕하세요.

한국거래소의 점검 작업이 끝나 해당 코드가 정상 동작합니다.

확인해 보세요.

jhdia님의 프로필

jhdia

질문자

2021.05.23

안녕하세요 지금 다시 해봤는데 완전히 동일한 오류가 나옵니다.

안녕하세요. 여전히 동일한 오류가 난다면 몇 가지 체크해 볼 내용이 있습니다.

1. 일단 최신 버전은 0.9.31  입니다. 실습 코드 내부의 아래 소스코드로 확인을 해볼 수 있습니다.

# FinanceDataReader 를 fdr 별칭으로 불러옵니다.
# 라이브러리의 version을 확인하고 싶을 때는 .__version__ 으로 확인합니다.
import FinanceDataReader as fdr
fdr.__version__

2. 최신 버전을 사용하고 있음에도 같은 부분에서 오류가 난다면 파이썬 인증서 오류일 수 있습니다.

특정 URL에 접근해서 데이터를 가져오려고 할 때 파이썬 인증서가 설치되어 있지 않다면 데이터를 읽어오지 못해 오류가 발생할 수 있습니다. 대부분 이 인증서는 아나콘다 설치시 파이썬을 설치하며 함께 설치가 되는데 가끔 설치 시에 이 부분이 누락되는 경우가 있습니다.

아래의 코드가 FDR을 통해 주가 데이터를 받아오는 부분입니다. 주피터 노트북에서 아래의 셀을 실행했을 때 SSL 오류가 나는지 확인해 주시고 정상 작동하는지 확인을 해주세요.

import json
import requests
data = {'bld': 'dbms/comm/finder/finder_stkisu',}
r = requests.post('http://data.krx.co.kr/comm/bldAttendant/getJsonData.cmd', data=data)
jo = json.loads(r.text)
jo

3. 해당 실습은 google colab을 통해서도 해보실 수 있습니다.

아래의 URL을 통해 실습을 해보세요.

https://colab.research.google.com/github/corazzon/finance-data-analysis/blob/main/2.1%20FinanceDataReader%EB%A5%BC%20%ED%86%B5%ED%95%9C%20%EC%83%81%EC%9E%A5%EC%A2%85%EB%AA%A9%20%EC%A0%84%EC%B2%B4%20%EB%B6%88%EB%9F%AC%EC%98%A4%EA%B8%B0-output.ipynb

그리고 2번 코드로 오류가 난다면 아래 URL에 있는 방법으로 파이썬 인증서를 설치해 주세요.

[Mac OSX python ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed](http://corazzon.github.io/python_ssl_error)