-
퀀트 프로젝트 | CompanyGuide 투자지표 PER, PBR 크롤링Capital/Quant 2024. 4. 12. 18:00
1. 투자지표 크롤링
이번 프로젝트에서는 CompanyGuide에서 제공하는 투자지표를 살펴볼 것이다. 아래 링크로 접속하면 CompanyGuide에서 제공하는 투자지표를 볼 수 있다. 링크를 따라 접속하면 해당 종목의 연도별 PER, PBR, PSR, PCR, EV/EBITDA 등이 정리되어 있다. 종목코드를 바꿔가면서 해당 페이지를 크롤링하면 모든 종목의 투자지표를 불러올 수 있을 것이다. 이번 프로젝트에서는 앞서 만들었던 종목코드 파일을 불러온 뒤 CompanyGuide 투자지표 페이지에서 모든 종목의 투자지표, 특히 PER과 PBR을 자동으로 크롤링하는 기능을 파이썬 코드로 구현해보자.
2. 프로젝트
# 라이브러리 추가 import requests import pandas as pd import io import time # 투자지표 PER, PBR 크롤링 함수 def crawling_invest(firm_code): url = 'https://comp.fnguide.com/SVO2/ASP/SVD_Invest.asp?pGB=1&cID=&MenuYn=Y&ReportGB=D&NewMenuID=103&stkGb=701&gicode=' + firm_code page = requests.get(url) table = pd.read_html(io.StringIO(page.text)) total_table = table[3] total_table = total_table.set_index(total_table.columns[0]) total_table = total_table.loc[['PER계산에 참여한 계정 펼치기', 'PBR계산에 참여한 계정 펼치기']] total_table.index = ['PER', 'PBR'] return total_table # 저장된 종목코드 불러오기 code_data = pd.read_excel('KRX_stock_list.xlsx') code_data = code_data[['Code']] # 투자지표 크롤링 for idx, firm_code in enumerate(code_data['Code']): print(idx + 1, '/', len(code_data['Code'])) try: # 종목별 투자지표 크롤링 try: sub_finance_table = crawling_invest(firm_code) except requests.exceptions.Timeout: time.sleep(60) sub_finance_table = crawling_invest(firm_code) # 종목별 투자지표 정리 for num, col in enumerate(sub_finance_table.columns): temp = pd.DataFrame({firm_code : sub_finance_table[col]}).T temp.columns = [[col] * len(sub_finance_table), temp.columns] if num == 0: temp_arranged = temp else: temp_arranged = pd.merge(temp_arranged, temp, how='outer', left_index=True, right_index=True) # 투자지표 통합 if idx == 0: invest_table = temp_arranged else: invest_table = pd.concat([invest_table, temp_arranged]) except ValueError: continue except KeyError: continue # 투자지표 저장 invest_table.to_excel('invest_table.xlsx')
[함께 읽으면 좋은 페이지]
참고문헌
- 박준규. (2019). 퀀트 전략 파이썬으로 세워라. 비제이퍼블릭.
반응형'Capital > Quant' 카테고리의 다른 글
투자 지표: 계량투자의 종목 선택 기준 (5) 2024.11.11 퀀트 프로젝트 | PER+PBR 콤보 전략 구현하기 (1) 2024.11.10 퀀트 프로젝트 | CompanyGuide 재무비율 ROA, ROE 크롤링 (0) 2024.04.05 퀀트 프로젝트 | CompanyGuide 재무제표 크롤링 (0) 2024.03.29 퀀트 프로젝트 | FinanceDataReader 코스피 코스닥 종목코드 불러오기 (1) 2024.03.22