백엔드 프레임워크 & 언어/Python

[프로젝트]데이터수집-머신러닝을 통한 삼성전자 주가 예측(7)

anodos 2023. 7. 9. 17:07
import requests # HTTP 요청 라이브러리
from bs4 import BeautifulSoup # python으로 HTML을 다루는 기능
import time  #시간
import pandas as pd # 엑셀화 

headers = {'User-Agent' : 'Mozilla/5.0 (Macintosh: Intel OS X 10_13_6}'}


url = "https://finance.naver.com/item/sise_day.naver?code=005930&page=1"
url = requests.get(url, headers = headers)
html = BeautifulSoup(url.text) # 이 HTML처럼 보이는 Text를 진짜 HTML로 변환하기
html = html.find('table', class_='type2')
table = pd.read_html(str(html))[0]
table = table.dropna()
table

목표

1. 크롤링을 통해  네이버  금융주가  주가 가져오기

2. 머신러닝알고리즘을 적용해 주가 예측 모델 만들기

3. 성능 좋은 모델을 만들기

 

1-6. 테이블 데이터 가져오기, 결측치 제거

Dom에서 발췌한  테이블 html상의 데이터를 처리하기 위해서 pandas의 read_html()함수를 이용하여 데이터를 읽는다. 주의할 점은 해당 html을 text 형식으로 변경해서 읽어야 한다. 

import requests # HTTP 요청 라이브러리
from bs4 import BeautifulSoup # python으로 HTML을 다루는 기능
import time  #시간
import pandas as pd # 엑셀화 

headers = {'User-Agent' : 'Mozilla/5.0 (Macintosh: Intel OS X 10_13_6}'}


url = "https://finance.naver.com/item/sise_day.naver?code=005930&page=1"
url = requests.get(url, headers = headers)
html = BeautifulSoup(url.text) # 이 HTML처럼 보이는 Text를 진짜 HTML로 변환하기
html = html.find('table', class_='type2')
pd.read_html(str(html))

판다스로  데이터를 가져왔다.  문제가 있다.

list 형식으로 가져왔기 때문에 안에 데이터를 꺼내주어야 하고,  데이터 활용을 위해서 NaN으로 표기된 결측치를 제거해 주어야 한다. 

import requests # HTTP 요청 라이브러리
from bs4 import BeautifulSoup # python으로 HTML을 다루는 기능
import time  #시간
import pandas as pd # 엑셀화 

headers = {'User-Agent' : 'Mozilla/5.0 (Macintosh: Intel OS X 10_13_6}'}


url = "https://finance.naver.com/item/sise_day.naver?code=005930&page=1"
url = requests.get(url, headers = headers)
html = BeautifulSoup(url.text) # 이 HTML처럼 보이는 Text를 진짜 HTML로 변환하기
html = html.find('table', class_='type2')
table = pd.read_html(str(html))[0]
table = table.dropna()
table

데이터를 테이블형식에 예쁘게 저장했다! 

 

반응형