INVESTAR / StockAnalysisInPython

456 stars 413 forks source link

DBUpdaterEX.py 를 사용하여 네이버 웹스크래핑을 하는데 기간이 21-12-08 이전의 데이터가 스크래핑이 안되네요 #119

Open idcraft opened 2 years ago

idcraft commented 2 years ago

김황후 선생님, 파이썬을 처음 시작하는 비전공자로서 정말 좋은 책 내 주셔서 감사합니다. 따라오고 있는 도중 6장 웹스크래핑 데이터 분석 실습을 하는 도중 해결점을 알고 싶어서 글을 남깁니다. 저는 지금 DBUpdaterEX.py를 사용해서 주가 스크래이핑을 하면 21년 12월 8일 이전의 데이터들이 스크래핑이 안되는 상황입니다. 제공해 주신 코드에 손을 대진 않았는데, 원래대로라면 100페이지에 해당하는 데이터를 스크래핑해야 정상이지만 헤이디큐엘로 확인해 보아도 이전의 데이터들이 스크래핑이 되지 않는 상황입니다. 어떤 부분을 개선하면 될지 질문드립니다.

INVESTAR commented 2 years ago

먼저 확인하실 것은 {"pages_to_fetch": 100} 값입니다. DBUpdaterEx.py가 존재하는 디렉터리에 config.json 파일이 있을텐데 그 파일에 적혀있는 pages_to_fetch 값이 100이 맞는지 확인해 보시기 바랍니다.

만일 config.json 파일의 pages_to_fetch 값이 100이 맞다면 read_naver() 함수 내부에서 100 페이지 만큼 웹 스크레이핑이 발생해야 합니다. read_naver() 함수 내부에서 print() 함수로 pages_to_fetch 값을 찍어보면서 웹 스크레이핑이 제대로 되는지 확인해 보시기 바랍니다.

def update_daily_price(self, pages_to_fetch):
    """KRX 상장법인의 주식 시세를 네이버로부터 읽어서 DB에 업데이트"""  
    for idx, code in enumerate(self.codes):
        df = self.read_naver(code, self.codes[code], pages_to_fetch)
        if df is None:
            continue
        self.replace_into_db(df, idx, code, self.codes[code])         

read_naver() 함수에서 웹 스크레이핑에 문제가 없었다면 데이터프레임 df에 1000 rows의 데이터가 존재할 것입니다. replace_into_db() 함수 내부에서 DB 업데이트 작업에 문제가 없는지 print() 함수로 찍어가면서 확인해 보시기 바랍니다.

idcraft commented 2 years ago

선생님 정말 감사합니다! 집중력이 떨어져서 디렉터리 안 config.json 파일 자체를 체크를 못하고 파이썬 프로그래밍 구문만 보고 있었습니다. ;;