네이버 금시세 크롤링

24331·2021년 5월 23일
0

DS

목록 보기
3/3

Outline

네이버에서 제공하는 일자별 금 시세 크롤링

Ready

Code

# 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')

Chart

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')

profile
Today I Failed.

0개의 댓글