혼자 만들면서 공부하는 파이썬 - 3주차
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 구조에 대해 조금 배워야겠다는 생각이 들었다.