์น ํฌ๋กค๋ง & ๋ฐ์ดํฐ ๋ถ์ with ํ์ด์ฌ
์น ํฌ๋กค๋ง๊ณผ ๋ฐ์ดํฐ ๋ถ์์ ํ์ฌ ๋ฐ์ดํฐ ๊ณผํ ๋ถ์ผ์์ ๊ฐ์ฅ ํต์ฌ์ ์ธ ๊ธฐ์ ์ค ํ๋๋ก ์๊ผฝํ๋๋ค. ์ด๋ฒ ํฌ์คํ ์์๋ ํ์ด์ฌ์ ์ฌ์ฉํ์ฌ ์น ํฌ๋กค๋ง๊ณผ ๋ฐ์ดํฐ ๋ถ์์ ์ด๋ป๊ฒ ์ํํ๋์ง์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค.
์น ํฌ๋กค๋ง
์น ํฌ๋กค๋ง์ ์น ํ์ด์ง๋ฅผ ํ์ํ์ฌ ์ํ๋ ์ ๋ณด๋ฅผ ์์งํ๋ ์์ ์ ์๋ฏธํฉ๋๋ค. ํ์ด์ฌ์์๋ requests์ BeautifulSoup ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ๋จํ๊ณ ํจ์จ์ ์ผ๋ก ์น ํฌ๋กค๋ง์ ํ ์ ์์ต๋๋ค. requests๋ HTTP ์์ฒญ์ ๋ณด๋ด๊ณ ์๋ต์ ๋ฐ์์ค๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ฉฐ, BeautifulSoup๋ HTML๊ณผ XML ๋ฌธ์๋ฅผ ํ์ฑํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
import requests
from bs4 import BeautifulSoup
url = 'https://example.com'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
# ํ์ํ ์ ๋ณด ์ถ์ถ
title = soup.title
print(title.text)
๋ฐ์ดํฐ ๋ถ์
์น ํฌ๋กค๋ง์ ํตํด ์์งํ ๋ฐ์ดํฐ๋ฅผ ๋ถ์ํ๊ธฐ ์ํด์๋ pandas์ matplotlib ๋๋ seaborn ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. pandas๋ ๋ฐ์ดํฐ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ๋ค๋ฃฐ ์ ์๋ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ ๊ณตํ๊ณ , matplotlib๊ณผ seaborn์ ๋ฐ์ดํฐ๋ฅผ ์๊ฐํํ๋ ๋ฐ ์ ์ฉํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค.
import pandas as pd
import matplotlib.pyplot as plt
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],
'Age': [25, 30, 35, 40],
'Score': [80, 85, 90, 95]}
df = pd.DataFrame(data)
print(df)
# ๋ฐ์ดํฐ ์๊ฐํ
plt.bar(df['Name'], df['Score'])
plt.show()
๋ฐ์ดํฐ ๋ถ์ ํ๋ก์ธ์ค
- ๋ฐ์ดํฐ ์์ง: ์น ํฌ๋กค๋ง ๋๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๋ฐ์ดํฐ๋ฅผ ์์งํฉ๋๋ค.
- ๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ: ๋๋ฝ๋ ๊ฐ์ด๋ ์ด์์น๋ฅผ ์ฒ๋ฆฌํ๊ณ , ๋ฐ์ดํฐ๋ฅผ ์ ์ ํฉ๋๋ค.
- ๋ฐ์ดํฐ ๋ถ์: pandas๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๋ถ์ํ๊ณ , matplotlib ๋๋ seaborn์ ์ฌ์ฉํ์ฌ ์๊ฐํํฉ๋๋ค.
- ๊ฒฐ๊ณผ ํด์: ๋ถ์ ๊ฒฐ๊ณผ๋ฅผ ํ ๋๋ก ์ธ์ฌ์ดํธ๋ฅผ ๋์ถํ๊ณ ๊ฒฐ๋ก ์ ๋์ถํฉ๋๋ค.
์์ ๊ฐ์ ๊ณผ์ ์ ๊ฑฐ์ณ ๋ฐ์ดํฐ๋ฅผ ๋ถ์ํ๊ณ ์ธ์ฌ์ดํธ๋ฅผ ์ป์ ์ ์์ต๋๋ค. ํ์ด์ฌ์ ์ฌ์ฉํ์ฌ ์น ํฌ๋กค๋ง๊ณผ ๋ฐ์ดํฐ ๋ถ์์ ํจ๊ป ์ํํ๋ฉด ๋์ฑ ๊ฐ๋ ฅํ ๋ถ์์ ํ ์ ์์ต๋๋ค. ๋ฐ์ดํฐ ๊ณผํ ๋ถ์ผ์์ ํ์ด์ฌ์ ๋งค์ฐ ์ธ๊ธฐ ์๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ด๋ฉฐ, ๋ฐ์ด๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๊ตฌ๋ฅผ ์ ๊ณตํ์ฌ ๋ฐ์ดํฐ ๋ถ์ ์์ ์ ํจ์จ์ ์ผ๋ก ์ํํ ์ ์์ต๋๋ค.
์ด์์ผ๋ก ์น ํฌ๋กค๋ง๊ณผ ๋ฐ์ดํฐ ๋ถ์์ ๋ํ ๊ฐ๋ตํ ์๊ฐ๋ฅผ ๋ง์น๊ฒ ์ต๋๋ค. ํ์ด์ฌ์ ํ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์์งํ๊ณ ๋ถ์ํ๋ ๊ณผ์ ์ ๋งค์ฐ ํฅ๋ฏธ๋ก์ธ ๋ฟ๋ง ์๋๋ผ, ์ค์ ๋ฌธ์ ํด๊ฒฐ์๋ ํฐ ๋์์ ์ค ์ ์์ต๋๋ค. ํจ๊ป ํ์ด์ฌ์ ํ์ฉํ์ฌ ๋ฐ์ดํฐ ๊ณผํ์ ์ธ๊ณ๋ฅผ ํํํด๋ณด์ธ์!