파이썬을 공부할 때 꼭 알아야 할 유명 라이브러리는 데이터 처리, 시각화, 머신러닝, 웹 개발 등 다양한 분야에서 활용됩니다. 아래에 대표적인 라이브러리와 간단한 예제를 정리했으니 실습에 바로 활용해 보세요.
📊 데이터 분석 & 처리
- 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()으로 간격 두기.
- 데이터 활용 윤리: 상업적 목적 사용 시 법적 문제 발생 가능.
'Python' 카테고리의 다른 글
| 공격자 IP 차단 Python 소스 (0) | 2026.05.28 |
|---|---|
| 윈도우 서버(또는 PC)에 대한 무차별 대입 공격(Brute-force)을 방어 Python 소스 (0) | 2026.05.13 |
| Uvicorn ASGI(Asynchronous Server Gateway Interface) 서버 사용방법 (0) | 2026.05.13 |
| Python에서 GUI제작용 tkinter 라이브러리 사용예제 나열 (0) | 2026.05.11 |
| Pillow(PIL Fork) 이미지 처리 라이브러리 사용법 (0) | 2026.05.11 |