파이썬 크롤링 학교 챌린지 #62: 핀셋 비서! ‘BeautifulSoup으로 원하는 정보 찾기’

안녕하세요! 가족과 함께하는 스마트 라이프입니다. 어제 인터넷 웹사이트의 문을 두드려보셨나요? 오늘은 그 안에 가득 찬 복잡한 코드들 사이에서 우리가 진짜 보고 싶은 뉴스 제목이나 상품 가격만 골라내는 ‘BeautifulSoup(뷰티풀수프)’ 마법을 배워볼 거예요. 이제 여러분은 인터넷 세상의 정보를 마음대로 요리하는 데이터 요리사가 될 수 있답니다!

[IMAGE_1]

1. 복잡한 코드를 정리해주는 ‘주방장’ 비서

웹사이트의 코드(HTML)는 마치 재료가 마구 섞인 커다란 냄비와 같아요. BeautifulSoup은 이 냄비 속의 재료들을 종류별로 예쁘게 접시에 담아주는 주방장 비서예요. “주방장님, 여기서 <title>이라는 이름의 접시에 담긴 글자만 가져다주세요!”라고 말하면 비서가 1초 만에 가져다준답니다.

2. 핀셋 비서의 필수 주문

정보를 콕 집어오기 위해 필요한 분석 주문들을 배워봐요.

  • BeautifulSoup(data, ‘html.parser’): 냄비 속의 복잡한 데이터를 요리하기 좋게 분석해요.
  • find(‘태그이름’): 웹사이트에서 가장 먼저 나오는 특정 태그를 하나만 찾아요.
  • find_all(‘태그이름’): 웹사이트에 있는 같은 종류의 태그를 몽땅 찾아서 리스트로 만들어요.
  • get_text(): 태그 안에 숨어있는 진짜 ‘글자’만 깨끗하게 씻어서 가져와요.

3. 실전 연습: 뉴스 제목 쏙쏙 골라내기 코딩

# 이 코드는 beautifulsoup4라는 도구가 설치되어 있어야 해요!
# 설치 방법: pip install beautifulsoup4

import requests
from bs4 import BeautifulSoup

print("🥢 파이썬 핀셋 비서가 정보 추출을 시작합니다!")

# 1. 정보를 가져올 주소 (예: 간단한 뉴스 페이지)
url = "https://www.google.com" # 예시를 위해 구글 메인 페이지를 사용해요
response = requests.get(url)

# 2. 주방장 비서에게 요리 부탁하기
soup = BeautifulSoup(response.text, 'html.parser')

# 3. 사이트 제목(Title) 콕 집어오기
web_title = soup.find('title')
print(f"\n🌐 웹사이트의 이름표: {web_title.get_text()}")

# 4. 모든 링크(a 태그) 글자들 가져오기
print("\n--- 사이트의 주요 링크 텍스트 ---")
links = soup.find_all('a')

for i, link in enumerate(links[:5]): # 너무 많으니 5개만 볼게요!
    text = link.get_text().strip()
    if text:
        print(f"{i+1}. {text}")

print("------------------------------")
print("\n✨ 복잡한 코드 속에서 글자만 쏙쏙 찾아냈어요!")

[IMAGE_2]

4. 더 예리한 정보 수집가로 업그레이드!

우리 핀셋 비서에게 더 정교한 기능을 추가해볼까요?

  • ID와 클래스로 찾기: find(id='name')이나 find(class_='price')를 사용해 더 정확한 위치의 정보를 찾아보세요.
  • 엑셀로 내보내기: 56탄 엑셀 비서 기능을 합쳐서, 수집한 뉴스 제목들을 엑셀 파일에 착착 정리해 보세요.
  • 키워드 알림: 수집한 글자 중에 “이벤트”나 “할인”이라는 단어가 있으면 42탄 영어 비서가 소리 내어 알려주게 해보세요.

5. 가족과 함께하는 ‘우리 집 소식 알림이’

아이와 함께 자주 방문하는 교육 사이트의 공지사항 제목을 긁어와 보세요. “오늘은 새로운 소식이 올라왔을까?”라고 물으며 아이가 직접 find_all 뒤의 태그 이름을 바꿔보게 해주세요. 아이가 직접 get_text()를 사용해 지저분한 코드가 깨끗한 문장으로 변하는 것을 보며 ‘데이터 전처리의 중요성’을 자연스럽게 익힐 수 있습니다. EduPad 프로젝트에서 외부 교육용 콘텐츠나 추천 도서 목록을 자동으로 수집해 아이의 대시보드에 뿌려주는 맞춤형 정보 큐레이션의 핵심 기술로 활용하기에 정말 완벽한 예제입니다.

마치며: 이제 원하는 정보는 다 내 거예요!

챌린지의 62번째 미션 완료! 오늘은 수많은 데이터 속에서 의미 있는 정보를 추출하는 법을 배웠습니다. 내일 오전 9시에는 주식 시세나 날씨처럼 시시각각 변하는 숫자를 수집하는 ‘숫자 추적기! 실시간 데이터 크롤링’ 마법으로 돌아오겠습니다!