FinanceData / FinanceDataReader

Financial data reader
1.18k stars 366 forks source link

한국종목데이터는 불러와지지만, 지수데이터는 불러오는데 에러 발생합니다. #161

Closed tyolee closed 2 years ago

tyolee commented 2 years ago

최종 예외 메시지는 json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0) 입니다.

아주 간단하게 몇가지 테스트 해봤습니다.

import FinanceDataReader as fdr

fdr 뒷단에서 exchange에 따라 동작이 달라지고 있는 것 같은데, 혹시 investing쪽 api 응답이 바뀐건 아닌지 확인 부탁 드립니다.

fdr 버전은 0.9.42 사용중입니다.

GrilledSalmon commented 2 years ago

저도 같은 버전에서 동일한 문제 겪고 있습니다. 저번처럼 investing.com의 정책이 바뀌어서 크롤링 과정에서 문제가 생긴 걸까요?

JoshuaChung93 commented 2 years ago

저도 같은 버전에서 코스닥지수를 불러오는데 자꾸 JSONDcodeError: expecting value: line 1 column 1 (char 0) 에러가 나네요. 업데이트되고 괜찮아진줄 알았는데

JoshuaChung93 commented 2 years ago

저같은 경우에는 로컬에서 파이썬 파일을 돌릴때는 문제가 없는데 우분투 서버에서 파일을 돌리면 저 에러가 뜹니다. finance-datareader 버전은 둘 다 같습니다.

FinanceData commented 2 years ago

investing.com의 정책 변화에 대응하기 위해 Release Note 0.9.40에서 investing 내부에서 다른 데이터 소스를 사용하도록 수정하였습니다.

그런데, 이마저 막히고 말았네요. 덧붙여 investing.com 가 사용하고 있는 Cloudflare의 제한을 우회할 방법(cloudscaper)을 찾았으나 무료버전으로는 해결이 되지 않습니다.

현재 2개 안을 검토중 입니다.

1) 해외 데이터 경우 yahoo finance 등으로 데이터 소스를 변경 2) 크롤링 방식 변경(Selenium, CasperJS, Cypress, PhantomJS 등)

데이터 소스를 변경하는 방향은 investing 만큼 다양한 가격 데이터를 제공하는 곳이 없어서 약간 고민이 됩니다. 업데이트 후에 다시 알려드리도록 하겠습니다.

FinanceData commented 2 years ago

Release 0.9.50 에서 FIX 하였습니다. 상세한 내용을 아래 Release Note 참고하시기 바랍니다.

https://github.com/financedata-org/FinanceDataReader/wiki/Release-Note-0.9.50