Pandas로 웹 스크래핑한 데이터 분석
1. 개요
웹 스크래핑(Web Scraping)은 웹사이트에서 데이터를 추출하는 기술로, Python의 requests
와 BeautifulSoup
을 활용하면 쉽게 수행할 수 있습니다. 이번 포스팅에서는 웹에서 데이터를 가져와 Pandas
로 분석하는 방법을 설명합니다.
2. 필요한 라이브러리 설치
웹 스크래핑을 위해 다음 라이브러리를 설치해야 합니다.
pip install requests beautifulsoup4 pandas
이제 각 라이브러리의 역할을 살펴보겠습니다.
requests
: 웹 페이지의 HTML을 가져오는 라이브러리BeautifulSoup
: HTML을 파싱하여 원하는 데이터를 추출하는 라이브러리pandas
: 데이터를 구조화하고 분석하는 라이브러리
3. 웹 페이지에서 데이터 가져오기
예제로 네이버 금융(Naver Finance)에서 환율 데이터를 가져와 분석해보겠습니다.
3.1 HTML 가져오기
import requests
from bs4 import BeautifulSoup
# 타겟 URL 설정
url = "https://finance.naver.com/marketindex/"
# GET 요청을 보내 웹페이지 가져오기
response = requests.get(url)
# 응답 확인
if response.status_code == 200:
html = response.text
else:
raise Exception("웹페이지를 불러오는데 실패했습니다.")
위 코드에서는 requests.get()
을 사용하여 웹페이지의 HTML을 가져옵니다.
3.2 원하는 데이터 추출하기
네이버 금융에서 제공하는 환율 정보를 가져오기 위해 BeautifulSoup
을 사용합니다.
soup = BeautifulSoup(html, 'html.parser')
# 환율 데이터 찾기
data = []
currencies = soup.select(".market1 .data_lst li")
for currency in currencies:
name = currency.select_one(".h_lst").get_text(strip=True)
value = currency.select_one(".value").get_text(strip=True)
data.append([name, value])
이제 data
리스트에는 환율 정보가 저장됩니다.
4. Pandas를 활용한 데이터 분석
웹에서 추출한 데이터를 Pandas
의 DataFrame
으로 변환하여 분석해 보겠습니다.
import pandas as pd
# DataFrame 생성
df = pd.DataFrame(data, columns=["통화", "환율"])
# 데이터 타입 변환
df["환율"] = df["환율"].str.replace(',', '').astype(float)
위 코드에서는 DataFrame
을 생성하고, 숫자로 저장된 환율 값을 float
타입으로 변환합니다.
4.1 데이터 요약
print(df.info())
print(df.describe())
info()
와 describe()
를 사용하여 데이터 구조와 통계 정보를 확인할 수 있습니다.
4.2 데이터 정렬
환율 값을 기준으로 데이터를 정렬해 보겠습니다.
sorted_df = df.sort_values(by="환율", ascending=False)
print(sorted_df)
이제 높은 환율을 가진 통화부터 정렬된 결과를 볼 수 있습니다.
5. 시각화하기
matplotlib
과 seaborn
을 사용하여 데이터를 시각화해 보겠습니다.
pip install matplotlib seaborn
import matplotlib.pyplot as plt
import seaborn as sns
plt.figure(figsize=(10, 6))
sns.barplot(x="환율", y="통화", data=df, palette="coolwarm")
plt.xlabel("환율 (KRW)")
plt.ylabel("통화")
plt.title("네이버 금융 환율 정보")
plt.show()
이제 통화별 환율을 막대 그래프로 확인할 수 있습니다.
6. 결론
이번 포스팅에서는 requests
와 BeautifulSoup
을 활용하여 웹에서 환율 데이터를 가져오고, Pandas
를 이용해 분석 및 시각화하는 과정을 살펴보았습니다. 이를 활용하면 다양한 웹 데이터를 자동으로 수집하고 분석할 수 있습니다.
다음 단계로, 수집된 데이터를 정기적으로 업데이트하는 자동화 시스템을 구축해보는 것도 좋은 연습이 될 것입니다.
'Python Pandas' 카테고리의 다른 글
Pandas + OpenAI API 활용 ( 데이터 요약, 텍스트 분석 ) (0) | 2025.02.26 |
---|---|
Pandas Kaggle 데이터셋 활용 실습 (0) | 2025.02.24 |
Pandas Seaborn을 활용한 고급 시각화 (0) | 2025.02.23 |
Pandas Matplotlib을 이용한 데이터 시각화 (0) | 2025.02.22 |
Pandas 내장 시각화 기능 (plot()) 활용하기 (0) | 2025.02.21 |