1. 데이터 수집 개요
데이터 분석 또는 머신러닝 프로젝트를 수행하기 위해서는 데이터 수집(Data Collection) 과정이 필요하다.
데이터 수집은 다양한 경로를 통해 데이터를 확보하는 과정이며, 이후 데이터 전처리 및 분석의 기반이 된다.
대표적인 데이터 수집 방법은 다음과 같다.
- 웹 크롤링 (Web Crawling)
- 웹 스크래핑 (Web Scraping)
- API 데이터 수집
- 파일 기반 데이터 수집 (CSV, Excel 등)
- 데이터베이스 데이터 수집
파이썬에서는 다음과 같은 라이브러리를 많이 사용한다.
requestsBeautifulSoupseleniumpandas
2. requests 라이브러리
2.1 requests 개념
requests는 HTTP 요청을 보내기 위한 파이썬 라이브러리이다.
웹 서버에 데이터를 요청하고 응답을 받아올 수 있다.
설치
pip install requests
사용
import requests
2.2 GET 요청
웹 서버에서 데이터를 가져올 때 사용한다.
import requests
url = "https://example.com"
response = requests.get(url)
print(response.status_code)
# 결과
# 200
주요 상태 코드
| 코드 | 의미 |
|---|---|
| 200 | 요청 성공 |
| 404 | 페이지 없음 |
| 500 | 서버 오류 |
응답 내용 확인
print(response.text)
# 결과
# HTML 문서 내용
ai가 추천하는 심화 예제
웹 페이지 HTML 일부 확인
import requests
url = "https://example.com"
response = requests.get(url)
print(response.text[:200])
# 결과
# HTML 문서의 앞부분 문자열
3. BeautifulSoup
3.1 BeautifulSoup 개념
BeautifulSoup은 HTML 또는 XML 문서를 파싱하여 원하는 데이터를 추출하는 라이브러리이다.
설치
pip install beautifulsoup4
사용
from bs4 import BeautifulSoup
3.2 HTML 파싱
from bs4 import BeautifulSoup
html = """
<html>
<body>
<h1>Hello</h1>
<p>Python Crawling</p>
</body>
</html>
"""
soup = BeautifulSoup(html, "html.parser")
print(soup)
# 결과
# HTML 구조 출력
3.3 태그 찾기
title = soup.find("h1")
print(title)
# 결과
# <h1>Hello</h1>
텍스트 추출
print(title.text)
# 결과
# Hello
ai가 추천하는 심화 예제
여러 태그 가져오기
items = soup.find_all("p")
for item in items:
print(item.text)
# 결과
# Python Crawling
4. 웹 크롤링 기본 흐름
웹 크롤링의 기본 과정은 다음과 같다.
웹 요청 → HTML 수신 → HTML 파싱 → 데이터 추출
구현 과정
- requests로 웹페이지 요청
- BeautifulSoup으로 HTML 파싱
- 원하는 태그 추출
- 데이터 저장
크롤링 예제
import requests
from bs4 import BeautifulSoup
url = "https://example.com"
response = requests.get(url)
soup = BeautifulSoup(response.text, "html.parser")
title = soup.find("h1")
print(title.text)
# 결과
# 페이지 제목 출력
5. 데이터 수집 결과 저장
수집한 데이터는 보통 다음과 같은 형태로 저장한다.
- CSV
- Excel
- Database
CSV 저장
import pandas as pd
data = {
"name": ["A","B","C"],
"score": [90,85,88]
}
df = pd.DataFrame(data)
df.to_csv("result.csv", index=False)
# 결과
# result.csv 파일 생성
ai가 추천하는 심화 예제
크롤링 결과 저장
titles = ["기사1","기사2","기사3"]
df = pd.DataFrame({
"title": titles
})
df.to_csv("news.csv", index=False)
# 결과
# news.csv 파일 생성
6. 데이터 수집 시 주의사항
데이터 수집 시 다음 사항을 고려해야 한다.
1. robots.txt 확인
웹사이트의 크롤링 정책을 확인해야 한다.
2. 요청 속도 제한
짧은 시간에 많은 요청을 보내면 서버에 부담을 줄 수 있다.
import time
time.sleep(1)
3. 로그인 필요한 사이트
일부 사이트는 로그인 세션이 필요하다.
이 경우 다음이 필요할 수 있다.
- session
- cookies
- selenium
7. 정리
데이터 수집은 데이터 분석 프로젝트의 시작 단계이다.
핵심 과정
웹 요청 → HTML 수신 → 파싱 → 데이터 추출 → 저장
주요 라이브러리
- requests → 웹 요청
- BeautifulSoup → HTML 파싱
- pandas → 데이터 저장 및 처리
웹 크롤링은 데이터 분석, 뉴스 수집, 가격 모니터링, 시장 분석 등 다양한 분야에서 활용된다.
'KDT 수업 > 파이썬 공부' 카테고리의 다른 글
| 내가 보려고 만든 파이토치(Pytorch) 정리 (0) | 2026.03.18 |
|---|---|
| 내가 보려고 만든 MatPlotLib 정리 (0) | 2026.03.12 |
| 내가 보려고 만든 판다스 정리 (0) | 2026.03.12 |
| 내가 보려고 만든 NumPy 정리 (1) | 2026.03.12 |
| 10.22 파이썬 컬렉션 타입 (0) | 2025.10.22 |