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
데이터를 테이블형식에 예쁘게 저장했다!
반응형
'백엔드 프레임워크 & 언어 > Python' 카테고리의 다른 글
[프로젝트]데이터분석-머신러닝을 통한 삼성전자 주가 예측(9) (0) | 2023.07.10 |
---|---|
[프로젝트]데이터수집-머신러닝을 통한 삼성전자 주가 예측(8) (0) | 2023.07.09 |
[프로젝트]데이터수집-머신러닝을 통한 삼성전자 주가 예측(6) (0) | 2023.07.09 |
[프로젝트]데이터수집-머신러닝을 통한 삼성전자 주가 예측(5) (0) | 2023.07.09 |
[프로젝트]데이터수집-머신러닝을 통한 삼성전자 주가 예측(4) (0) | 2023.07.09 |