-
(파이썬 증권데이터 분석) 상장법인 정보 불러오기, 주가 스크레이핑computer_IT 2022. 7. 17. 10:04반응형
2022.07.16 - [computer_IT] - [파이썬 증권데이터분석] 최대손실낙폭(MDD), 회귀분석과 상관관계
소스코드는 아래 링크
https://github.com/Investar/StockAnalysisInPython
증권 데이터 분석을 하려면 종목 코드를 알아야 한다. 종목코드가 있어야 종목별 통계를 낼 수 있기 때문이다.
한국거래소 기업공시채널 상장법인목록에서 엑셀을 다운로드한다.
https://kind.krx.co.kr/corpgeneral/corpList.do?method=loadInitPage
다운받은 파일을 메모장으로 열어보면 내용이 HTML형식으로 되어있다. 따라서 pandas의 read_html() 함수로 읽는다. import pandas as pd 하고 krx_list = pd.read_html('파일경로/상장법인목록.xls')로 읽고 리스트를 출력한다. 종목코드 앞 자리 0이 없으므로 map() 함수를 이용하여 값을 변경한다.
krx_list = pd.read_html('파일경로/상장법인목록.xls')[0] 으로 뒤에 '[0]'을 붙이면 결과값을 데이터프레임으로 받을 수 있다. 오름차순으로 정렬하고 내림차순으로 정렬할 때는 ascending=False 를 추가한다.
웹 스크레이핑을 이용한 데이터 분석
뷰티풀수프를 이용하여 네이버 금융 일별 시세에서 삼성전자의 주가 수집하기.
여기서 맨뒤 페이지가 몇 페이지인지 구하려면 개발자도구를 열고 선택하여 HTML 속성값을 찾는다.
<td class="pgRR">
<a href="/item/sise_day.naver?code=005930&page=655" >맨뒤
<img src="https://ssl.pstatic.net/static/n/cmn/bu_pgarRR.gif" width="8" height="5" alt="" border="0">
</a>
</td>으로 되어 있음을 알 수 있다. <td> 태그의 클래스속성이 pgRR인 <a> 태그 안 655가 마지막 페이지가 된다.
pip install beautifulsoup4으로 HTML, XML페이지에서 데이터를 추출하는 뷰티풀 수프를 설치한다.
headers를 설정하지 않으면 네이버에서 헤더값을 체크해서 없으면 다른 페이지를 보여주기 때문에 headers값을 설정해야 한다. 헤더를 설정하지 않고 html 소스를 출력해보면 .error_content, 잘못된 페이지 등이 나온다. 예를 들어 headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'} 라고 입력한다.
마지막페이지인 655가 출력되었다. 이제 반복문을 통해 각 페이지의 정보를 읽어와서 데이터프레임에 추가하는 작업을 한다. append 함수보다 concat 함수를 사용하라는 메시지가 나온다. range(시작값, 종료값) 함수는 종료값-1까지 나오기 때문에 4페이지가 출력되었다.
반응형'computer_IT' 카테고리의 다른 글
(파이썬 증권데이터 분석) 볼린저 밴드 지표 (0) 2022.07.23 (파이썬 증권데이터 분석) 일별시세 DB구축 및 시세 조회 API 개발 (0) 2022.07.22 [파이썬 증권데이터분석] 최대손실낙폭(MDD), 회귀분석과 상관관계 (0) 2022.07.16 (파이썬 증권데이터 분석) 일간 변동률 누적합 그래프 그리기 (0) 2022.07.13 파이썬 증권 데이터 분석 연습하기(주식 주가 그리기) (0) 2022.07.12