
지난번까지 전체 종목을 가져와서 PER까지 가져오는 방법을 알아보았습니다.
지난번 포스트는 아래 링크를 참고하세요.
2022.07.13 - [집구석 강의/파이썬으로 마법의 공식 구현하기] - 파이썬 마법의 공식 - 5. PER 가져오기
파이썬 마법의 공식 - 5. PER 가져오기
2022.06.28 - [집구석 강의/파이썬으로 마법의 공식 구현하기] - 파이썬 마법의 공식 - 4. 모든 종목번호, 종목명 가져오기 파이썬 마법의 공식 - 4. 모든 종목번호, 종목명 가져오기 조엘 그린블란트
dotsnlines.tistory.com
이번 포스트는 ROA를 가져오는 방법을 알아보도록 하겠습니다.
ROA는 크롤링을 해야 합니다.
우선 인터넷 브라우저 주소입력창에 "https://comp.fnguide.com" 을 입력합니다.

위의 그림과 같이 CompanyGuide에서 제공하는 기업정보 화면이 나옵니다.
우리는 ROA를 구해야 하기 때문에 "재무비율" 화면으로 가봅니다.

우리가 원하는 연도별 ROA가 나오는 창을 찾았습니다.
현재 화면에서 주소창을 살펴봅니다.

주소창을 살펴보니 "A005930"이라는 숫자가 보입니다. 005930은 삼성전자의 종목코드 입니다.
여기서 아이디어를 얻을 수 있습니다. 저 숫자를 바꾸면 원하는 종목의 ROA를 가져올 수 있을 것 같습니다.

"005380"이라고 입력해보니 현대차가 나오네요.

"requests"라는 모듈을 불러옵니다.

code는 변수로 만들고, 현재 페이지에서 주소를 복사해서 붙인다음 url 변수를 만듭니다.
중간에 종목코드가 들어간 6자리 숫자는 변수(code)로 바꾸고, '+'를 사용해서 글자를 조합합니다.

fr_page라고 변수를 만들어서 requests 라이브러리로 가져온 값을 넣어 줍니다.
그리고 fr_page를 출력해 봅니다.

'Response [200]' 이렇게 나오면 제대로 가져온 겁니다.
이제 시각적으로 ROA 값을 가져와 봅시다.

원래 크롤링은 Beautifulsoup이라는 라이브러리를 많이 쓰는데, 우리는 좀 더 간단하게 구현하기 위해서 pandas를 이용하겠습니다.
위와 같이 입력을해서 결과값을 확인해 봅니다.

신기하지 않나요? 저는 볼때마다 신기해요.
여기에서 우리가 원하는 데이터만 가져와야 하기 때문에 코드를 추가해 보겠습니다.

테이블이 여러개니깐 첫번째 테이블([0])만 가져와서 'temp_df' 변수에 넣어 줍니다.

제대로 가져오는 것을 확인했습니다.
"ROA계산에 참여한 계정 펼치기" 라는 값만 가져와서 정리해 보겠습니다.

위와 같이 코드를 입력합니다. 그리고 출력을 해 봅니다.

결과가 잘 나왔습니다.

위의 코드와 같이 시점에 따라 데이터프레임을 만들어 주고, 전체 종목을 합쳐야 하니깐 행과 열의 위치를 바꿔서 실행해 보겠습니다.

요런 식으로 종목마다 데이터를 합칠 예정입니다.
전체 종목을 가져오기 위해서는 모든 종목코드에 대해서 이번 포스트에 했던 내용을 반복해야 합니다.
무식하게 매번 반복할 수 없으니 함수로 만들어 보겠습니다.

위와 같이 함수를 만들어 줍니다.
이번 포스트는 여기까지 입니다.
다음 포스트는 가져온 PER, ROA를 가지고 전 종목을 마법의 공식처럼 순위를 매겨서 자동으로 고르는 코드를 작성해 보겠습니다.
'파이썬(Python) > 마법의 공식' 카테고리의 다른 글
파이썬 마법의 공식 - 7. PER, ROA 순위를 매겨서 투자 종목 선정하기 (0) | 2022.08.15 |
---|---|
파이썬 마법의 공식 - 5. PER 가져오기 (2) | 2022.07.13 |
파이썬 마법의 공식 - 4. 모든 종목번호, 종목명 가져오기 (5) | 2022.06.28 |
파이썬 마법의 공식 - 3. 모듈(라이브러리) 설치하기 (0) | 2022.06.23 |
파이썬 마법의 공식 - 2. 파이썬 설치하기 (1) | 2022.06.20 |
댓글