본문 바로가기

Python_Crawling/Crawling

190302>Python - Naver 증권 일일 시세 크롤링

반응형

Q. Naver 증권 일일 시세 크롤링 하기(금융코드 035420)


A.

import requests
from bs4 import BeautifulSoup as BS

def refine_price(text):
price = int(text.replace(",", ""))
return price

url = "https://finance.naver.com/item/sise_day.nhn?code=035420"
response = requests.get(url)
text = response.text
html = BS(text, 'html.parser')
tr_list = html.find_all("tr", {"onmouseover":"mouseOver(this)"})
for tr in tr_list:
date = tr.find_all("td")[0].text
temp = []
for td in tr.find_all("td")[1:]:
price = refine_price(td.text)
temp.append(price)
del temp[1]
print([date] + temp)
"""
closing = refine_price(tr.find_all("td")[1].text)
opening = refine_price(tr.find_all("td")[3].text)
max = refine_price(tr.find_all("td")[4].text)
min = refine_price(tr.find_all("td")[5].text)
volume = refine_price(tr.find_all("td")[6].text)
print([date, closing, opening, max, min, volume])
"""


O.

['2019.02.28', 133000, 130500, 136000, 130000, 563615]

['2019.02.27', 129500, 132000, 134000, 129000, 322664]

['2019.02.26', 131500, 126500, 134000, 126000, 591643]

['2019.02.25', 126000, 127000, 128500, 125500, 338113]

['2019.02.22', 127000, 129500, 129500, 125000, 301395]

['2019.02.21', 129000, 126500, 130000, 126500, 347083]

['2019.02.20', 127000, 126500, 128000, 125500, 231753]

['2019.02.19', 126500, 127000, 128000, 125500, 218351]

['2019.02.18', 127000, 129500, 131000, 125500, 533191]

['2019.02.15', 127500, 128500, 131000, 127500, 420100]


Process finished with exit code 0


Tip.

네이버에는 좋은 일일 시세 코드 주소가 존재한다.

url = "https://finance.naver.com/item/sise_day.nhn?code=035420"

이 부분이다. 저 중에 마지막 코드 숫자가 바로 금융코드이다.

저걸 만약에 삼성전자로 하고 싶으면 맨 마지막에 숫자를 005930 로 바꾸면 삼성전자에 대한 주식일일시세가 나온다.

반응형