• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

"No tables found"

21.04.14 15:42 작성 조회수 264

1

안녕하세요 라이브러리를 불러오고 난 다음fdr.StockListing("KRX")를 입력하고 출력했는데

위와 같은 오류가 납니다.. 왜 그런지 모르겠어요..

답변 2

·

답변을 작성해보세요.

0

minsu9700님의 프로필

minsu9700

질문자

2021.04.14

삭제된 글입니다
minsu9700님의 프로필

minsu9700

질문자

2021.04.14

계속 이런 오류가 나오네요..

0

안녕하세요.

FinanceDataReader 가 정상적으로 로드가 되었다면
아마도 버전의 차이 등으로 데이터를 불러오지 못하는 것 같습니다.

아래의 코드를 하나의 셀에 실행해 보시겠어요?

import FinanceDataReader as fdr

print(fdr.__version__)

df_krx = fdr.StockListing("KRX")

df_krx.head()

위의 코드가 정상 동작하지 않는다면 FinanceDataReader 의 최신 버전을 사용해 주세요.

아래의 명령어를 통해 FinanceDataReader 를 재설치를 해보세요.

pip install finance-datareader --upgrade

minsu9700님의 프로필

minsu9700

질문자

2021.04.14

import FinanceDataReader as fdr

print(fdr.__version__)

df_krx = fdr.StockListing("KRX")

df_krx.head()

0.9.31
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-1-1407705ab5cd> in <module>
      1 import FinanceDataReader as fdr
      2 print(fdr.__version__)
----> 3 df_krx = fdr.StockListing("KRX")
      4 df_krx.head()

C:\ProgramData\Anaconda4\lib\site-packages\FinanceDataReader\data.py in StockListing(market)
     60         return NaverStockListing(market).read()
     61     if market in [ 'KRX', 'KOSPI', 'KOSDAQ', 'KONEX']:
---> 62         return KrxStockListing(market).read()
     63     if market in [ 'KRX-DELISTING' ]:
     64         return KrxDelisting(market).read()

C:\ProgramData\Anaconda4\lib\site-packages\FinanceDataReader\krx\listing.py in read(self)
     23 
     24         url = 'http://kind.krx.co.kr/corpgeneral/corpList.do?method=download&searchType=13'
---> 25         df_listing = pd.read_html(url, header=0)[0]
     26         cols_ren = {'회사명':'Name', '종목코드':'Symbol', '업종':'Sector', '주요제품':'Industry', 
     27                             '상장일':'ListingDate', '결산월':'SettleMonth',  '대표자명':'Representative',

C:\ProgramData\Anaconda4\lib\site-packages\pandas\util\_decorators.py in wrapper(*args, **kwargs)
    294                 )
    295                 warnings.warn(msg, FutureWarning, stacklevel=stacklevel)
--> 296             return func(*args, **kwargs)
    297 
    298         return wrapper

C:\ProgramData\Anaconda4\lib\site-packages\pandas\io\html.py in read_html(io, match, flavor, header, index_col, skiprows, attrs, parse_dates, thousands, encoding, decimal, converters, na_values, keep_default_na, displayed_only)
   1099         na_values=na_values,
   1100         keep_default_na=keep_default_na,
-> 1101         displayed_only=displayed_only,
   1102     )

C:\ProgramData\Anaconda4\lib\site-packages\pandas\io\html.py in _parse(flavor, io, match, attrs, encoding, displayed_only, **kwargs)
    915             break
    916     else:
--> 917         raise retained
    918 
    919     ret = []

C:\ProgramData\Anaconda4\lib\site-packages\pandas\io\html.py in _parse(flavor, io, match, attrs, encoding, displayed_only, **kwargs)
    896 
    897         try:
--> 898             tables = p.parse_tables()
    899         except ValueError as caught:
    900             # if `io` is an io-like object, check if it's seekable

C:\ProgramData\Anaconda4\lib\site-packages\pandas\io\html.py in parse_tables(self)
    215         list of parsed (header, body, footer) tuples from tables.
    216         """
--> 217         tables = self._parse_tables(self._build_doc(), self.match, self.attrs)
    218         return (self._parse_thead_tbody_tfoot(table) for table in tables)
    219 

C:\ProgramData\Anaconda4\lib\site-packages\pandas\io\html.py in _parse_tables(self, doc, match, attrs)
    545 
    546         if not tables:
--> 547             raise ValueError("No tables found")
    548 
    549         result = []

ValueError: No tables found

안녕하세요. 사용하시는 버전이나 코드나 모두 문제가 없어보입니다.

데이터를 가져오지 못하는 것으로 봤을 때 SSL 오류일 수도 있을 것 같습니다.

FinanceDataReader 를 통해 전체 종목을 가져오는 코드는 아래와 같은데요.

아래 코드를 실행해 보시고 데이터를 가져오는지 확인해 주세요.

아래 코드 실행 시에도 오류가 난다면 파이썬 설치시에 인증서 설정이 되지 않은 듯 해요.

혹은 실습하고 계신곳에서 한국 거래소 웹사이트 접근이 가능한지도 확인이 필요할거 같습니다.

기업의 경우 특정 웹사이트에 대한 접근을 막아놓기도 합니다.

아래 URL 이 전체 종목을 받을 수 있는 URL 인데요. 아래 URL이 접근 되는지 확인해 주세요.

http://kind.krx.co.kr/corpgeneral/corpList.do?method=download&searchType=13

----------------주피터에서 아래 코드를 실행해 보세요.-----------

import pandas as pd

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_listing

----------------주피터에서 여기까지의 코드를 실행해 보세요.-----------

그리고 해당 강좌는 google  colab 으로도 실습을 해보실 수가 있는데요.

만약 위 코드로도 오류가 발생한다면 오류 메시지를 올려주시고 아래 Colab 링크로 실습해 보세요.

[1. FinanceDataReader를 통한 상장종목 전체 불러오기.ipynb - Colaboratory](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)

minsu9700님의 프로필

minsu9700

질문자

2021.04.14

선생님 안녕하세요 우선 신경 써주셔서 정말 감사합니다.

선생님이 댓글을 올리기 전에 아나콘다를 삭제하고 재설치를 했습니다. 

다행히도 정상적으로 실행이 되네요. 제 생각엔 아나콘다 패키지 문제였던 거 같아요.

감사합니다. 

안녕하세요.

재설치가 가장 깔끔하긴 합니다! 잘 해결되었다니 다행이에요!

감사합니다 :)