제로베이스 데이터 파트타임 스쿨 학습 일지 [25.05.14]

[강의 요약]

[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일반 강의 자료 일부를 발췌하여 작성되었습니다.”