반응형
파이썬으로 주식(주가) 데이터를 얻는 방법입니다.
네이버 금융 페이지를 예로 들려고 하며 코드 035810은 이지바이오 회사의 코드 번호입니다.
파이썬으로 주식 예측 프로그램을 만드려면 먼저 주가 데이터가 있어야겠죠?
코드 설명을 드리면 네이버 금융 페이지에 접속하여 html을 분석 합니다.
그리고 일자, 종가, 시가, 고가, 저가, 거래량의 데이터를 가져옵니다.
저장된 데이터는 csv파일에 쓰도록 하겠습니다.
전체 코드 입니다.
import csv, codecs
import urllib
import datetime
import time
from urllib.request import urlopen
from bs4 import BeautifulSoup
import matplotlib.pyplot as plt
with codecs.open("ezfulldata.csv", "w", "euc_kr ") as fp:
writer = csv.writer(fp, delimiter=",", quotechar='"')
writer.writerow(["date", "final_price", "nomal_price"
, "high_price", "low_price", "trade_cnt"])
stockItem = '035810'
url = 'http://finance.naver.com/item/sise_day.nhn?code='+ stockItem
html = urlopen(url)
source = BeautifulSoup(html.read(), "html.parser")
maxPage=source.find_all("table",align="center")
mp = maxPage[0].find_all("td",class_="pgRR")
mpNum = int(mp[0].a.get('href')[-3:])
for page in range(1, 100):
url = 'http://finance.naver.com/item/sise_day.nhn?code=' + stockItem +'&page='+ str(page)
html = urlopen(url)
source = BeautifulSoup(html.read(), "html.parser")
srlists=source.find_all("tr")
isCheckNone = None
if((page % 1) == 0):
time.sleep(0.5)
for i in range(1,len(srlists)-1):
if(srlists[i].span != isCheckNone):
srlists[i].td.text
"""
print(srlists[i].find_all("td",align="center")[0].text
,srlists[i].find_all("td",class_="num")[0].text
,srlists[i].find_all("td",class_="num")[2].text
,srlists[i].find_all("td",class_="num")[3].text
,srlists[i].find_all("td",class_="num")[4].text
,srlists[i].find_all("td",class_="num")[5].text)
"""
print(
srlists[i].find_all("td",align="center")[0].text.replace(",","")
, srlists[i].find_all("td",class_="num")[0].text.replace(",","")
, srlists[i].find_all("td",class_="num")[2].text.replace(",","")
, srlists[i].find_all("td",class_="num")[3].text.replace(",","")
, srlists[i].find_all("td",class_="num")[4].text.replace(",","")
, srlists[i].find_all("td",class_="num")[5].ttext.replace(",",""))
with codecs.open("ezfulldata.csv", "a", "euc_kr ") as fp:
writer = csv.writer(fp, delimiter=",", quotechar='"')
writer.writerow([
srlists[i].find_all("td",align="center")[0].text.replace(",","")
, srlists[i].find_all("td",class_="num")[0].text.replace(",","")
, srlists[i].find_all("td",class_="num")[2].text.replace(",","")
, srlists[i].find_all("td",class_="num")[3].text.replace(",","")
, srlists[i].find_all("td",class_="num")[4].text.replace(",","")
, srlists[i].find_all("td",class_="num")[5].text.replace(",","")
])
반응형
'Programming > AI' 카테고리의 다른 글
ModuleNotFoundError: No module named 'pandas.io.data' 해결 방법 (2) | 2018.07.22 |
---|---|
[머신러닝/딥러닝] opencv로 얼굴 인식하기 (0) | 2018.07.09 |
[머신러닝/딥러닝] 이미지 검색 - 유사한 이미지 찾기 (3) | 2018.07.08 |
KoNLPy(코넬파이) 설치 및 트위터 형태소 분석기 api 예제 (0) | 2018.07.01 |
[머신러닝/딥러닝] tensorflow + keras + nano 에디터 설치하기 (0) | 2018.07.01 |