파이썬을 활용한 웹 크롤링(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으로 원하는 데이터 추출하기
- 실제 뉴스 사이트에서 데이터 크롤링 실습
다음 글에서는 크롤링한 데이터를 활용하여 데이터 분석하는 방법을 배워보겠습니다! 🚀
'BIG DATA > PYTHON' 카테고리의 다른 글
[PYTHON] 파이썬 Selenium을 활용한 자동 웹 크롤링 (0) | 2025.02.23 |
---|---|
[PYTHON] 파이썬 웹 크롤링 데이터를 활용한 데이터 분석 (0) | 2025.02.23 |
[PYTHON] 파이썬 데이터 시각화: Matplotlib과 Seaborn 기초 (0) | 2025.02.22 |
[PYTHON] 데이터 분석을 위한 파이썬 라이브러리: NumPy와 Pandas 기초 (0) | 2025.02.22 |
[PYTHON] 파이썬 모듈과 패키지 완벽 정리 (0) | 2025.02.22 |