IT/python

네이버증권 크롤링 활용 52주 최고가 대비 현재가격의 비율구하기

나의지식 2021. 8. 25. 14:39
import requests
from bs4 import BeautifulSoup

def fin(a):
    url='https://finance.naver.com/item/main.nhn?code='+str(a)

    res=requests.get(url)
    a=res.text

    poe=a.find('52주')
    t=a[poe:poe+200]
    soup=BeautifulSoup(t,'html.parser')
    max52=int((soup.em.string).replace(',',''))
    
    poe=a.find('현재가')
    t=a[poe:poe+20].split(' ')
    ppt=t[1]
    pvalue=int(t[1].replace(',',''))

    poe=a.find('<dd>종목명')
    t=a[poe:poe+50].split(' ')
    y=t[1].split('</dd>')
    tt=y[0]

    print(tt+" : "+str(ppt)+"원 ("+str(int(pvalue/max52*100))+"%)")


def mm(a):
    url='https://finance.naver.com/item/main.nhn?code='+str(a)

    res=requests.get(url)
    a=res.text
    
    poe=a.find('최저 :' )
    t=a[poe:poe+400]
    soup=BeautifulSoup(t,'html.parser')
    max52=int((soup.em.string).replace(',',''))

    poe=a.find('현재가')
    t=a[poe:poe+20].split(' ')
    ppt=t[1]
    pvalue=int(t[1].replace(',',''))

    poe=a.find('<dd>종목명')
    t=a[poe:poe+50].split(' ')
    y=t[1].split('</dd>')
    tt=y[0]

    print(tt+" : "+str(ppt)+"원 ("+str(int(pvalue/max52*100))+"%)")


mm("035720")
mm("035420")

fin("000660")
fin("017670")
fin("005380")
fin("051910")
fin("005490")
fin("302440")
fin("285130")
fin("096770")

 

실행 결과

카카오 : 150,000원 (86%)
NAVER : 429,000원 (92%)
SK하이닉스 : 103,500원 (68%)
SK텔레콤 : 293,500원 (86%)
현대차 : 209,500원 (72%)
LG화학 : 799,000원 (76%)
POSCO : 326,500원 (78%)
SK바이오사이언스 : 284,500원 (78%)
SK케미칼 : 280,000원 (59%)
SK이노베이션 : 243,000원 (74%)

네이버증권에서 크롤링하여 52주 최고가 대비 현재가격의 비율을 알려줍니다. 

fin함수 뒤에 증권번호를 쓰면 됩니다. mm은 액면분할 등으로 최고가의 변동이 있을 때 쓰는 함수입니다. 

 

파이썬 활용

1. 좀 더 쉽고 색다른 python 워드클라우드, stylecloud

2. 텍스트 파일 안의 스트링 개수 구하기 

3. 이미지에 텍스트 새기기

4. 이미지에 텍스트 새기기 2탄, 유튜브 썸네일 만들기

반응형