본문 바로가기
컴퓨터공학

[2025 최신] 파이썬으로 웹 크롤링하는 법 (10줄 코드로 자동화 완성)

by oioiwoon 2025. 2. 6.
반응형

🕵️‍♂️ 웹 크롤링(Web Scraping)이란?

웹 크롤링이란 웹사이트의 데이터를 자동으로 수집하는 기술입니다. Python과 몇 줄의 코드만 있으면 뉴스 기사, 주식 가격, 제품 정보 등을 자동으로 가져올 수 있습니다.

파이썬 웹 크롤링을 배우면?

  • 뉴스, 쇼핑몰, 주식 사이트에서 데이터 수집 가능
  • 반복 작업 자동화 (예: 매일 환율 정보 가져오기)
  • 데이터 분석 및 머신러닝 프로젝트 활용 가능

이 글에서는 단 10줄의 코드로 웹 크롤링을 구현하는 방법을 알려드립니다! 🚀

반응형

🔧 1. 웹 크롤링을 위한 필수 라이브러리 설치

웹 크롤링을 하려면 requests(웹페이지 요청)와 BeautifulSoup(HTML 파싱)을 설치해야 합니다.

pip install requests beautifulsoup4

설치가 완료되면 바로 크롤링을 시작해봅시다!


🚀 2. 10줄 코드로 웹 크롤링 구현하기

다음은 네이버 뉴스에서 최신 뉴스 제목을 가져오는 예제입니다.

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_="news_tit")  # 뉴스 제목 찾기
for title in headlines[:5]:  # 상위 5개 출력
    print(title.text)

코드 설명:

  1. requests.get(url): 네이버 뉴스 페이지의 HTML 가져오기
  2. BeautifulSoup(response.text, "html.parser"): HTML을 파싱하기 쉽게 변환
  3. .find_all("a", class_="news_tit"): 뉴스 제목을 담고 있는 태그 찾기
  4. for title in headlines[:5]: 상위 5개 뉴스 제목 출력

👉 이제 실행하면 네이버 뉴스의 최신 기사 제목이 자동으로 출력됩니다!


📌 3. 웹 크롤링 확장하기 (더 많은 데이터 수집)

🔹 1. 특정 키워드 검색 후 크롤링하기

네이버 뉴스에서 "파이썬" 키워드를 검색한 후 제목을 가져올 수도 있습니다.

search_url = "https://search.naver.com/search.naver?query=파이썬"
response = requests.get(search_url)
soup = BeautifulSoup(response.text, "html.parser")

results = soup.find_all("a", class_="news_tit")
for news in results[:5]:
    print(news.text)

🔹 2. 쇼핑몰 가격 정보 가져오기

쿠팡, G마켓 같은 사이트에서 상품 가격 정보를 자동으로 수집할 수도 있습니다.

product_url = "https://www.coupang.com/vp/products/123456"
headers = {"User-Agent": "Mozilla/5.0"}
response = requests.get(product_url, headers=headers)
soup = BeautifulSoup(response.text, "html.parser")

price = soup.find("span", class_="total-price").text
print(f"상품 가격: {price}")

실전에서는 사이트의 robots.txt 규정을 반드시 확인하고 크롤링하세요.


🔥 4. 웹 크롤링 시 주의해야 할 점

1. robots.txt 확인하기

  • 크롤링이 허용된 사이트인지 확인하려면 https://사이트주소/robots.txt를 확인하세요.

2. 과도한 요청 방지

  • 너무 많은 요청을 보내면 서버에서 차단될 수 있습니다.
  • time.sleep(1)을 사용하여 일정 간격으로 요청하세요.

3. 셀레니움(Selenium) 활용하기

  • requests와 BeautifulSoup만으로 크롤링이 어려운 경우, Selenium을 사용하면 동적 웹페이지도 크롤링할 수 있습니다.
pip install selenium
from selenium import webdriver

browser = webdriver.Chrome()
browser.get("https://news.naver.com")
print(browser.title)  # 웹페이지 제목 출력
browser.quit()

🎯 결론: 파이썬 웹 크롤링, 이제 직접 해보세요!

10줄 코드만으로도 강력한 웹 크롤링을 구현할 수 있습니다.뉴스, 쇼핑몰, 주식 등 다양한 사이트에서 데이터 수집이 가능합니다.셀레니움을 활용하면 더 복잡한 크롤링도 쉽게 처리할 수 있습니다.

🚀 이제 직접 웹 크롤링을 실행해보세요!

 

반응형