본문 바로가기
카테고리 없음

파이썬 크롤링으로 데이터 수집하는 법

by 소셜트렌드 2025. 1. 25.

웹에서 데이터를 수집하는 방법을 배우고 싶으신가요? 이 글에서는 파이썬과 주요 라이브러리를 사용해 크롤링하는 법을 단계별로 설명합니다.

목차

  1. 1. 크롤링이란 무엇인가?
  2. 2. 파이썬 크롤링 준비
  3. 3. requests로 HTML 가져오기
  4. 4. BeautifulSoup으로 HTML 분석하기
  5. 5. 특정 데이터 추출하기
  6. 6. 크롤링 실습: 네이버 뉴스 헤드라인 가져오기
  7. 7. 크롤링 시 주의사항
  8. 8. 추가 학습 및 활용 방안

1. 크롤링이란 무엇인가?

크롤링은 웹사이트의 데이터를 프로그램을 통해 자동으로 수집하는 과정입니다. 파이썬에서는 requestsBeautifulSoup 같은 라이브러리를 사용해 쉽게 크롤링을 구현할 수 있습니다. 크롤링은 데이터 분석, 연구, 마케팅 등 다양한 분야에서 활용됩니다.

2. 파이썬 크롤링 준비

크롤링을 시작하려면 먼저 아래 라이브러리를 설치해야 합니다:

# 터미널에서 설치 명령어 실행
pip install requests beautifulsoup4

requests: 웹페이지의 HTML 코드를 가져옵니다.
BeautifulSoup: 가져온 HTML을 파싱하고 원하는 데이터를 추출합니다.

3. requests로 HTML 가져오기

requests 라이브러리를 사용해 웹페이지의 HTML을 가져오는 방법은 간단합니다:

import requests

url = "https://example.com"
response = requests.get(url)

# HTTP 상태 코드 확인
print(response.status_code)

# HTML 내용 출력
print(response.text)

위 코드에서 response.text를 통해 웹페이지의 HTML 코드를 확인할 수 있습니다.

4. BeautifulSoup으로 HTML 분석하기

BeautifulSoup을 사용하면 HTML 코드를 구조화하여 원하는 데이터를 쉽게 추출할 수 있습니다:

from bs4 import BeautifulSoup

html = "<html><body><h1>Hello, World!</h1></body></html>"
soup = BeautifulSoup(html, "html.parser")

# 제목 태그(h1) 가져오기
print(soup.h1.text)  # 출력: Hello, World!

이처럼 BeautifulSoup은 HTML 요소를 탐색하고 데이터를 추출하는 데 매우 유용합니다.

5. 특정 데이터 추출하기

다음은 BeautifulSoup으로 특정 데이터를 추출하는 방법입니다:

# 특정 클래스의 데이터 가져오기
html = "<div class='title'>파이썬 크롤링</div>"
soup = BeautifulSoup(html, "html.parser")

# 클래스가 'title'인 요소 가져오기
title = soup.find("div", class_="title")
print(title.text)  # 출력: 파이썬 크롤링

이 코드는 HTML에서 class="title"인 요소를 찾아 텍스트를 출력합니다.

6. 크롤링 실습: 네이버 뉴스 헤드라인 가져오기

다음은 네이버 뉴스 헤드라인을 가져오는 실습 예제입니다:

import requests
from bs4 import BeautifulSoup

url = "https://news.naver.com"
response = requests.get(url)
soup = BeautifulSoup(response.text, "html.parser")

# 헤드라인 추출
headlines = soup.find_all("a", class_="lnk_hdline_article")

# 헤드라인 출력
for idx, headline in enumerate(headlines, 1):
    print(f"{idx}. {headline.text.strip()}")

위 코드는 네이버 뉴스에서 주요 헤드라인을 가져와 출력합니다. 실습 후, 사이트의 HTML 구조를 분석하며 자신만의 크롤링 코드를 작성해 보세요.

7. 크롤링 시 주의사항

  • 크롤링 전에 반드시 해당 웹사이트의 robots.txt 정책을 확인하세요.
  • 웹 서버에 과도한 요청을 보내지 않도록 딜레이를 설정하세요.
  • 수집한 데이터는 비상업적 목적으로만 사용하며, 저작권 침해가 없도록 주의해야 합니다.

8. 추가 학습 및 활용 방안

크롤링을 더 깊이 배우고 싶다면 아래 내용을 추가로 학습해 보세요:

  • Selenium: 자바스크립트로 렌더링되는 동적 웹페이지 크롤링
  • API 활용: 웹사이트에서 제공하는 공식 API로 데이터를 더 효율적으로 수집
  • 데이터 분석: 수집한 데이터를 pandasmatplotlib로 분석 및 시각화

이 외에도 자신만의 프로젝트를 만들어 실력을 키워보세요!

파이썬 크롤링은 데이터 수집과 분석의 시작입니다. 꾸준히 연습하며 다양한 웹사이트에서 필요한 데이터를 수집해 보세요. 즐거운 코딩 되시길 바랍니다!