개인공부/혼공학습단 14기 - 혼만파

혼자 만들면서 공부하는 파이썬 - 3주차

carrot_roh 2025. 7. 22. 03:22

Chapter 07 - 시가총액 분석

학습 목표

- 웹 스크레이핑을 자동화하고 원하는 데이터를 수집

- 불필요하거나 잘못된 데이터를 정제하고 처리

- 트리맵을 사용하여 시가총액 데이터를 시각화


07-1 종목별 시가총액 데이터 수집하기

- 이전에 사용했던 pathlib 패키지를 통해, 폴더를 생성함

- playwright 패키지는 웹 브라우저 기반 자동화에 사용

- kaleido(이미지 생성), nbformat(주피터 데이터 시각화), pandas(데이터 분석), plotly(데이터 시각화)의 패키지도 사용됨

- playwright 패키지 설치 이후 playwirght install 명령어를 통해 추가 업데이트가 필요한데, 명령어가 동작되지 않은 문제 발생

- python -m playerwright install 로 실행하면 업데이트 가능함

- 데이터 정제를 위해  pandas 패키지를 사용하여, 불필요한 열, 공백 문자를 삭제함

 

7-3 의 소스 코드 중 시가총액 name이 2개가 존재하여, 아래의 코드를 수정해야 함 

변경 전 page.get_by_role("link", name="국내증시").click()
page.get_by_role("link", name="시가총액", exact=True).click()
변경 후 page.get_by_role("link", name="국내증시").click()
page.get_by_role("link", name="시가총액").first.click()

07-2 페이지 이동 자동화하기

- URL은 인터넷 상에서 자원의 위치를 나타내는 주소, 웹 페이지나 파일에 접근하기 위해 사용

- 쿼리 스트링은 URL의 일부로, '?' 다음에 위치하며 웹 서버에 추가적인 정보를 전달하는 key-value 집합

- 키-값 쌍은 '&'로 구분하고, 키와 값은 '='로 연결함


07-3 시가총액 데이터 시각화하기

- 트리맵은 면적을 활용해 특정 항목의 비중을 표현하는 차트, 계층 관계를 표현하는데 효과적

- 트리맵은 컴퓨터 하드 디스크의 저장된 파일의 구조와 크기를 보여주기 위해 고안된 차트


# 진도 기본 숙제(필수) 추가 숙제(선택)
3주차
(7/14 ~ 7/20)
Chapter 07 Ch.07(07-1, 07-2) 종목별 시가총액 데이터 수집하기 Ch.07 미니 프로젝트(p.246) ETF 데이터 수집하기
7-1-2
7-1-4
7-2-2
7-3-2

 


07 미니프로젝트 -ETF 분석하기

 

조건

1. 소스 코드 step_1_3.py의 함수 goto_market_cap() 참고하여 네이버 페이 증권의 ETF 페이지로 이동하는 함수 goto_market_etf() 작성

- 기존 코드에서 name을 ETF로 변경하면 됨

def goto_market_etf(page: Page):
    page.goto("https://finance.naver.com")
    page.get_by_role("link", name="국내증시").click()
    page.get_by_role("link", name="ETF").first.click()

 

2. ETF 데이터를 수집하는 함수 parse_table_etf()를 작성하시오

- 실패

- 답안을 보면서, 이번 장을 진행하면서, html 구조에 대해 조금 배워야겠다는 생각이 들었다.