네이버에서 제공하는 일자별 금 시세 크롤링
# import
import pandas as pd
import numpy as np
addr = 'https://finance.naver.com/marketindex/goldDailyQuote.nhn?&page={page}'
# 페이지를 차례대로 읽어와서 Dataframe으로 변환
df_gold = pd.DataFrame()
for i in range(1,363):
url = addr.format(page=i)
df_gold_page = pd.read_html(url)[0]
# 데이터를 읽어오면 헤더가 2줄인 구조로 되어 있어 첫 번째 헤더 행을 삭제
df_gold_page.columns = df_gold_page.columns.droplevel(0)
# 미사용 컬럼 삭제
df_gold_page = df_gold_page.drop(['사실 때','파실 때','입금 시','해지 시'], axis=1)
df_gold = df_gold.append(df_gold_page, ignore_index=True)
# date 컬럼 생성
df_gold['date'] = pd.to_datetime(df_gold['날짜'], format='%Y.%m.%d')
# 컬럼이름 변경
df_gold = df_gold.rename(columns={'매매기준율':'price(KRW)', '전일대비':'change', '기준 국제 금 시세':'interPrice(USD)','기준 원달러 환율':'currency(USD-KRW)'})
# 사용하지 않을 날짜 컬럼 삭제
df_gold.drop('날짜', axis=1, inplace=True)
# date 컬럼을 인덱스로 변경
df_gold = df_gold.set_index('date')
import seaborn as sns
import matplotlib.pyplot as plt
plt.figure(figsize=(15,10))
sns.lineplot(data=df_gold, x='date', y='price(KRW)', color='r')