본문 바로가기
BIG DATA/PYTHON

[PYTHON] 파이썬을 활용한 웹 크롤링(Web Crawling) 기초

by 라일리T 2025. 2. 22.

파이썬을 활용한 웹 크롤링(Web Scraping) 기초

인터넷에는 다양한 데이터가 존재합니다.
하지만 모든 데이터를 직접 다운로드할 수 있는 것은 아니므로, **웹 크롤링(Web Scraping)**을 사용하여 원하는 정보를 자동으로 수집할 수 있습니다.

이번 글에서는 파이썬을 이용한 웹 크롤링 기초 개념과 실습 방법을 배워보겠습니다.


1. 웹 크롤링이란?

📌 웹 크롤링(Web Crawling)
: 웹사이트에서 데이터를 자동으로 가져오는 기술

📌 웹 스크래핑(Web Scraping)
: 웹페이지에서 특정 데이터를 추출하는 작업

웹 크롤링과 웹 스크래핑의 차이

  • 크롤링: 웹사이트를 탐색하며 데이터를 수집
  • 스크래핑: 수집한 데이터에서 필요한 부분만 추출

2. 웹 크롤링을 위한 필수 라이브러리

크롤링을 하려면 HTML 문서를 가져오고, 필요한 데이터를 추출하는 라이브러리가 필요합니다.

2.1 라이브러리 설치

pip install requests beautifulsoup4

2.2 주요 라이브러리 개요

✅ requests → 웹페이지의 HTML을 가져오는 역할
✅ BeautifulSoup → 가져온 HTML에서 원하는 정보만 추출


3. requests를 이용한 웹페이지 가져오기

3.1 웹페이지 요청하기

import requests

url = "https://example.com"
response = requests.get(url)  # 웹페이지 요청
print(response.text)  # HTML 출력

3.2 상태 코드 확인

if response.status_code == 200:
    print("성공적으로 데이터를 가져왔습니다!")
else:
    print("페이지 요청 실패:", response.status_code)

✅ 200 → 정상 응답
✅ 404 → 페이지 없음
✅ 500 → 서버 오류


4. BeautifulSoup을 이용한 데이터 추출

4.1 BeautifulSoup 객체 생성

from bs4 import BeautifulSoup

soup = BeautifulSoup(response.text, "html.parser")
print(soup.prettify())  # HTML 구조 정리해서 출력

4.2 특정 태그 가져오기

title = soup.find("title")  # <title> 태그 찾기
print(title.text)  # 태그 내부의 텍스트 출력

4.3 여러 개의 태그 가져오기 (find_all)

links = soup.find_all("a")  # 모든 <a> 태그 찾기

for link in links:
    print(link.get("href"))  # 링크(주소)만 출력

5. 실제 웹사이트 크롤링 예제

📌 네이버 뉴스 제목 가져오기

import requests
from bs4 import BeautifulSoup

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

# 뉴스 제목 가져오기
news_titles = soup.find_all("a", class_="nclicks")

for title in news_titles:
    print(title.text.strip())  # 뉴스 제목 출력

find_all("a", class_="nclicks")
→ <a> 태그 중에서 특정 클래스(nclicks)를 가진 태그만 선택


6. 크롤링할 때 주의할 점

🚨 크롤링을 하기 전에 웹사이트의 robots.txt 확인 필수!

  • 일부 사이트는 크롤링을 허용하지 않습니다.
  • 크롤링을 하기 전에 robots.txt 파일을 확인하세요.
  • URL 끝에 /robots.txt를 붙여 확인
    https://example.com/robots.txt
    

API가 제공되면 API 사용이 더 효율적!
과도한 요청을 보내지 않도록 주의!


7. 결론

이번 글에서는 파이썬을 활용한 웹 크롤링 기초를 배웠습니다.

  • requests로 웹페이지 HTML 가져오기
  • BeautifulSoup으로 원하는 데이터 추출하기
  • 실제 뉴스 사이트에서 데이터 크롤링 실습

다음 글에서는 크롤링한 데이터를 활용하여 데이터 분석하는 방법을 배워보겠습니다! 🚀