본문 바로가기
Python

Python 유명한 라이브러리 소개 및 웹 크롤링

by ERLite 2026. 5. 20.

파이썬을 공부할 때 꼭 알아야 할 유명 라이브러리는 데이터 처리, 시각화, 머신러닝, 웹 개발 등 다양한 분야에서 활용됩니다. 아래에 대표적인 라이브러리와 간단한 예제를 정리했으니 실습에 바로 활용해 보세요.

📊 데이터 분석 & 처리

  • pandas 표 형식 데이터를 다루는 대표 라이브러리.
  •  
    import pandas as pd
    df = pd.read_csv('sales.csv')
    print(df[df['price'] > 10000])
    
  • python
  • NumPy 빠른 배열 연산과 수치 계산.
  • python
    import numpy as np
    arr = np.array([1, 2, 3])
    print(arr * 2)  # [2, 4, 6]
    

🎨 데이터 시각화

  • Matplotlib / Seaborn 그래프와 차트를 쉽게 그릴 수 있음.
  • python
    import seaborn as sns
    import pandas as pd
    df = pd.DataFrame({'category':['A','B','C'], 'sales':[10,20,30]})
    sns.barplot(x='category', y='sales', data=df)
    

🤖 머신러닝 & AI

  • scikit-learn 머신러닝 모델 구축에 필수.
  • python
    from sklearn.ensemble import RandomForestClassifier
    model = RandomForestClassifier().fit(X_train, y_train)
    print(model.predict(X_test))
    
  • TensorFlow / PyTorch 딥러닝 프레임워크의 양대 산맥.
  • python
    import torch
    x = torch.tensor([1.0, 2.0])
    print(x ** 2)  # tensor([1., 4.])
    

🌐 웹 & API

  • requests 외부 웹 데이터 요청.
  • python
    import requests
    r = requests.get("https://api.example.com/data")
    print(r.json())
    
  • BeautifulSoup 웹 크롤링에 활용.
  • python
    from bs4 import BeautifulSoup
    soup = BeautifulSoup(r.text, 'html.parser')
    print(soup.find('h1').text)
    
  • Flask / FastAPI 간단한 웹 서버 및 API 구축.
  • python
    from fastapi import FastAPI
    app = FastAPI()
    @app.get("/")
    def read_root():
        return {"Hello": "World"}
    

📂 파일 & 데이터베이스

  • openpyxl 엑셀 파일 자동화.
  • python
    from openpyxl import load_workbook
    wb = load_workbook('data.xlsx')
    ws = wb.active
    ws['A1'] = '수정 완료'
    wb.save('data_new.xlsx')
    
  • SQLAlchemy 데이터베이스 ORM.
  • python
    from sqlalchemy import create_engine
    engine = create_engine("sqlite:///mydb.db")
    

 

📌 추천 웹 크롤링 프로젝트 아이디어

  • 뉴스 헤드라인 수집 네이버·다음 뉴스에서 특정 키워드(예: "AI")가 포함된 기사 제목을 자동으로 모아 트렌드 분석.
  • 쇼핑몰 가격 추적 쿠팡·11번가에서 동일 상품의 가격 변화를 주기적으로 기록해 최저가 알림 시스템 구축.
  • 부동산 매물 모니터링 직방·다방에서 특정 지역(예: 의왕시) 전세/매매 매물 데이터를 수집해 가격 변동 분석.
  • 소셜 리뷰 감성 분석 네이버·구글 리뷰를 크롤링해 긍정/부정 키워드 분류, 브랜드 평판 모니터링.
  • 채용 공고 자동 수집 잡코리아·사람인에서 원하는 직무(예: 데이터 분석가) 공고를 자동으로 모아 알림.

🛠️ 활용 라이브러리 & 도구

| BeautifulSoup | 정적 HTML 파싱에 적합, 초보자에게 가장 쉬움 | | Selenium | 동적 콘텐츠·로그인·무한 스크롤 처리 가능 | | Scrapy | 대규모·구조화된 크롤링에 최적화 | | Pandas | 수집한 데이터를 CSV·Excel로 저장 및 분석 | | Matplotlib | 크롤링 결과를 시각화하여 인사이트 도출 |

💡 간단 예제 (뉴스 제목 크롤링)

python
import requests
from bs4 import BeautifulSoup

url = "https://news.naver.com/main/main.naver?mode=LSD&mid=shm&sid1=105"
headers = {'User-Agent': 'Mozilla/5.0'}
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, 'html.parser')

titles = soup.select('.sh_text_headline')
for t in titles:
    print(t.get_text())

➡ 특정 뉴스 카테고리에서 제목을 자동으로 추출해 저장할 수 있습니다.

⚠️ 주의할 점

  • robots.txt 확인: 사이트가 크롤링을 허용하는지 반드시 확인.
  • 요청 빈도 제한: 너무 많은 요청은 서버에 부담을 주고 차단될 수 있음.
  • 데이터 활용 윤리 : 개인정보·저작권이 포함된 데이터는 무단 사용 금지.

 

📌 쇼핑몰 가격 크롤링 하기

1. 목표 설정

  • 어떤 쇼핑몰을 크롤링할지 선택 (예: 쿠팡, 11번가, G마켓).
  • 추적할 상품 키워드 정의 (예: "아이폰 15", "에어팟 프로").
  • 결과 저장 방식 결정 (CSV, Excel, DB).

2. 환경 준비

  • 필수 라이브러리 설치:
    bash
    pip install requests beautifulsoup4 pandas
    
  • 동적 페이지가 필요하다면 selenium도 설치:
  • bash
    pip install selenium
    

3. 데이터 수집

python
import requests
from bs4 import BeautifulSoup

url = "https://www.coupang.com/np/search?q=맥미니+M5"
headers = {"User-Agent": "Mozilla/5.0"}
res = requests.get(url, headers=headers)
soup = BeautifulSoup(res.text, "html.parser")

items = soup.select("div.name")
prices = soup.select("strong.price-value")

for name, price in zip(items, prices):
    print(name.get_text(), price.get_text())

➡ 상품명과 가격을 추출할 수 있습니다.

4. 데이터 저장

python
import pandas as pd

data = []
for name, price in zip(items, prices):
    data.append({"상품명": name.get_text(), "가격": price.get_text()})

df = pd.DataFrame(data)
df.to_csv("product_prices.csv", index=False, encoding="utf-8-sig")

➡ 결과를 CSV 파일로 저장해 나중에 분석 가능.

5. 자동화 & 알림

  • schedule 라이브러리로 매일 크롤링 실행.
  • 가격이 특정 값 이하로 떨어지면 이메일/카톡 알림 보내기.
  • 예: smtplib으로 이메일 발송.

6. 시각화 & 분석

python
import matplotlib.pyplot as plt

df['가격'] = df['가격'].astype(int)
df.plot(x='상품명', y='가격', kind='bar')
plt.show()

➡ 가격 변화를 그래프로 확인 가능.

⚠️ 주의사항

  • robots.txt 확인: 해당 쇼핑몰이 크롤링을 허용하는지 반드시 체크.
  • 요청 빈도 제한: 너무 많은 요청은 차단 위험. time.sleep()으로 간격 두기.
  • 데이터 활용 윤리: 상업적 목적 사용 시 법적 문제 발생 가능.