taeridad19 님의 블로그 입니다.

  • 2025. 4. 11.

    by. taeridad19

    목차

       

      파이썬(Python)으로 웹 스크래핑하기: BeautifulSoup 활용법

      파이썬(Python)으로 웹 스크래핑하기: BeautifulSoup 활용법

      웹 스크래핑(Web Scraping)이란?

      **웹 스크래핑(Web Scraping)**은 인터넷 웹사이트로부터 데이터를 자동으로 추출하는 기술입니다. 사람이 직접 복사·붙여넣기를 하지 않고, 코드로 원하는 정보를 빠르게 수집할 수 있다는 점에서 매우 유용합니다.

      이 기술은 다음과 같은 용도로 사용됩니다:

      • 뉴스 기사 및 블로그 수집
      • 상품 가격 비교 및 실시간 모니터링
      • 부동산 매물 정보 수집
      • 학술 자료, 오픈데이터 자동 추출
      • SNS 데이터 분석을 위한 크롤링 등

      웹 스크래핑을 위해 사용되는 대표적인 언어는 **파이썬(Python)**이며, 가장 널리 쓰이는 라이브러리가 바로 BeautifulSoup입니다.


      BeautifulSoup이란?

      BeautifulSoup은 HTML과 XML 파일을 **파싱(parse)**하고, 원하는 태그나 속성에 접근해 데이터를 추출할 수 있게 도와주는 파이썬 전용 라이브러리입니다.

      주요 특징:

      • HTML 구조가 깨져 있어도 자동으로 복원하여 파싱 가능
      • CSS 선택자, 태그 이름, 속성 등 다양한 방식으로 요소 선택
      • requests, urllib 등 다른 HTTP 요청 라이브러리와 함께 사용
      # 설치 방법 (pip 사용)
      pip install beautifulsoup4
      pip install requests
      

      웹 스크래핑 실습: 뉴스 제목 수집하기

      아래는 파이썬을 이용해 네이버 뉴스의 IT 기사 제목을 수집하는 예제입니다.

      1️⃣ 필요한 라이브러리 불러오기

      import requests
      from bs4 import BeautifulSoup
      

      2️⃣ 웹페이지 요청 및 HTML 파싱

      url = 'https://news.naver.com/section/105'  # IT/과학 뉴스 페이지
      response = requests.get(url)
      soup = BeautifulSoup(response.text, 'html.parser')
      

      3️⃣ 원하는 데이터 선택

      titles = soup.select('div.sa_text strong.sa_title a')
      for idx, title in enumerate(titles):
          print(f"{idx+1}. {title.text.strip()}")
      

      출력 결과:

      1. 삼성전자, 인공지능 탑재 가전 출시
      2. LG전자, 로봇청소기 신제품 공개
      3. 애플, WWDC 2025 일정 발표
      ...
      

      Tip: select() 함수는 CSS 선택자를 그대로 사용할 수 있어 매우 편리합니다.


      BeautifulSoup 주요 기능 정리

      1️⃣ HTML 태그로 요소 찾기

      soup.find('a')  # 첫 번째 <a> 태그 반환
      soup.find_all('a')  # 모든 <a> 태그 리스트로 반환
      

      2️⃣ 속성 값으로 찾기

      soup.find('div', {'class': 'news_area'})
      

      3️⃣ CSS 선택자 사용

      soup.select('div > ul > li > a')
      

      4️⃣ 텍스트만 추출하기

      title = soup.find('h1').text
      

      웹 스크래핑 시 주의사항

      웹 스크래핑은 기술적으로 강력하지만, 다음 사항을 반드시 고려해야 합니다:

      • robots.txt 파일 확인: 수집 허용 여부 확인
      • API가 제공된다면 우선 사용: 웹스크래핑보다 안정적이고 빠름
      • 과도한 요청 금지: 시간 지연(sleep)을 걸어 서버 과부하 방지
      • 저작권 및 개인정보 이슈: 수집한 데이터를 외부에 공유할 경우 주의 필요
      import time
      time.sleep(1)  # 1초 간격으로 요청
      

      웹 스크래핑 프로젝트 아이디어

      웹 스크래핑은 다양한 프로젝트에 활용할 수 있습니다:

      • 주식 정보 자동 수집기: 네이버 증권, Investing.com 등
      • 날씨 정보 모니터링: 기상청, AccuWeather 등
      • 쇼핑몰 가격 추적기: 쿠팡, G마켓, 11번가
      • 도서 검색기: 교보문고, 알라딘 API 또는 HTML 파싱

      이처럼 웹 스크래핑은 데이터 분석, 자동화, 마케팅, 리서치 등 다양한 분야에서 응용할 수 있는 강력한 도구입니다.


      마무리: BeautifulSoup으로 시작하는 데이터 자동화

      BeautifulSoup은 웹 데이터 수집의 입문자에게 가장 적합한 도구입니다.
      간결한 문법과 강력한 기능을 바탕으로, 수많은 데이터를 빠르고 정확하게 수집할 수 있습니다.
      파이썬을 배우고 있다면, 웹 스크래핑 프로젝트를 직접 시도해보는 것을 추천드립니다.
      다음 단계로는 Selenium, Scrapy 같은 고급 크롤러 도구에 도전해볼 수도 있습니다.