[강의 요약]
[Part 04. EDA/웹 크롤링/파이썬 프로그래밍_ Ch 04. 웹 데이터 분석] 강의 수강
클립 10~13까지 강의 수강하였음
13_실습 - list 데이터형까지
🐢 100일 챌린지 🔥 : [▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰░ ] 59/100일 (59%)
곧 60일!!
컨디션 난조로 오늘은 최소한의 강의만 수강했다.
[클립 10~13까지 정리]
▶ BeautifulSoup 예제 2: 여명의 눈동자 (위키백과 분석)
위키백과 페이지에서 웹 페이지 구조를 이해하고 텍스트 정보를 추출하는 것이 목표
https://ko.wikipedia.org/wiki/여명의_눈동자
▶ 1. 웹 주소(URL) 처리와 인코딩
복사한 주소를 붙여 넣으면 깨지는 이유가 뭘까?
- 위키백과처럼 한글이 포함된 URL은 웹브라우저 내부에서 자동으로 UTF-8로 인코딩 되어 처리된다.
그래서 복사해 붙이면 다음처럼 나온다
https://ko.wikipedia.org/wiki/%EC%97%AC%EB%AA%85%EC%9D%98_%EB%88%88%EB%8F%99%EC%9E%90
이게 바로 UTF-8 인코딩 된 주소
Python에서도 이렇게 인코딩 된 URL을 그대로 사용해야 페이지에 접근할 수 있다.
▶ 2. urllib로 HTML 읽기
from urllib.request import urlopen
from bs4 import BeautifulSoup
url = "https://ko.wikipedia.org/wiki/%EC%97%AC%EB%AA%85%EC%9D%98_%EB%88%88%EB%8F%99%EC%9E%90"
response = urlopen(url)
soup = BeautifulSoup(response, "html.parser")
- urlopen(url) : 해당 주소에 접속하여 응답 객체를 반환
- BeautifulSoup(response, 'html.parser') : HTML 구조를 파싱할 수 있는 soup 객체 생성
이렇게 하면 위키백과 전체 HTML을 분석 가능한 상태로 불러온 것
▶ 3. 텍스트 정보 추출하기
전체 텍스트 보는 방법은 다음과 같다.
print(soup.text)
- HTML 태그 없이 모든 글자를 출력
- 단점 : 불필요한 내용도 많음 (사이드바, 푸터 등)
특정 태그만 골라보는 방법은 다음과 같다.
div = soup.find("div", class_="mw-parser-output")
print(div.text)
- class='mw-parser-output'는 위키백과 본문 콘텐츠가 있는 주요 태그다.
- 이 안의 .text를 쓰면 원하는 본문만 깔끔히 추출할 수 있다.
▶ 4. 원하는 구간만 추출하고 싶다면?
ex) 첫 번째 문단만 가져오기
first_p = soup.find("p")
print(first_p.text)
- <p> 태그는 문단(paragraph)을 의미한다.
- 위키백과는 본문 내용이 <p>에 나눠져 있으므로, 처음 몇 개만 골라볼 수 있다.
[나의 생각 정리]
예제를 통해 어제 공부한 Beautiful Soup을 복습할 수 있었다.
[적용점]
데이터 분석(EDA)에서 사용
“이 글은 제로베이스 데이터 스쿨 주 3일반 강의 자료 일부를 발췌하여 작성되었습니다.”
'제로베이스 데이터 취업 파트타임 > 100일 챌린지_일일 학습 일지' 카테고리의 다른 글
제로베이스 데이터 파트타임 스쿨 학습 일지 [25.05.16] (3) | 2025.05.16 |
---|---|
제로베이스 데이터 파트타임 스쿨 학습 일지 [25.05.15] (1) | 2025.05.15 |
제로베이스 데이터 파트타임 스쿨 학습 일지 [25.05.13] (0) | 2025.05.13 |
제로베이스 데이터 파트타임 스쿨 학습 일지 [25.05.12] (2) | 2025.05.12 |
제로베이스 데이터 파트타임 스쿨 학습 일지 [25.05.11] (1) | 2025.05.11 |