안녕하세요. 모두의 파이썬입니다. 개인별 주식매매하는 방법이 다릅니다. 시간 외 단일가 매매는 시간 외 단일가 기반으로 다음 거래일에 매매하는 방식입니다. 전일 시간 외 단일가가 10%(상한가) 경우에 다음 거래일 장시 시작 시 가격 변동이 커질 수 있습니다. 큰 가격 변동이 매매에 중요한 지표가 될 수 있습니다. 구글링하여 mk 증권에서 시간 외 단일가 정보를 제공하는 것을 확인했습니다. 모두의 파이썬은 1위를 추종하므로 삼성전자(005930) 단일가를 크롤링 하겠습니다. http://vip.mk.co.kr/newSt/price/current9.php?stCode=005930 맨 뒤에 종목코드를 변경하면서, 원하는 종목의 시간 외 단일가 정보를 크롤링 할 수 있습니다
전체 글을 요약하면, mk 증권에서 삼성전자 시간 외 단일가 정보를 크롤링 하겠습니다. 결과는 종목명, 코드, 상승률, 현재가, 시간 외 단일 가입니다.
mk 증권 시간 외 단일가 정보를 얻을 수 있는 url로 접속해 보겠습니다. http://vip.mk.co.kr/newSt/price/current9.php?stCode=005930
크롤링의 시작은 개발자도 구 접속(F12 or 우 클릭>검사)이다. 시간 외 단일 가격이 포함된 테이블의 tag와 속성을 먼저 확인했는데, table_3가 전체 페이지에 3개이며, 시간 외 단일가가 포함된 테이블이 2번째이므로 fild_all('table',{'class' : 'table_3')[1]를 사용하여 결과를 얻고, 최종 시간 외 단일가는 가장 최신 거래이므로 find_all('tr', {'class':'gray'}) list 0번째 값을 얻고, find_all('td')의 list 1번째 값으로 시간 외 단일가를 최종 크롤링 할 수 있다
상승률(100*(시간 외/현재가 -1))을 계산하기 위해 현재가도 크롤링 해야 한다. tag 속성이 'f3_r'로 유일하다. find('font',{'class' : 'f3_r'})로 현재가를 크롤링 한다. 추가적으로 종목명 find('font', {'class' : 'f1'})로 쉽게 크롤링 할 수 있다.
전체 코드는 다음과 같다.
## 시간외 단일가 크롤링 (crawling)
## 시간외 단일가 크롤링 (crawling)
import requests
from bs4 import BeautifulSoup
def get_html(url):
## 브라우저 호환을 위해서 설정
headers = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 '+ \
'(KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36'
}
##해당 url에 htlm(정보) 요청에사용 / url은 사용자가 원하는 url
r = requests.get(url, headers=headers)
## 해당 url의 html을 사용자가 활용하기 쉽게 변환
html = BeautifulSoup(r.content, 'html.parser')
## 결과값 전달
return html
def get_stock_after_market_crawling(code):
url = 'http://vip.mk.co.kr/newSt/price/current9.php?stCode=' + code
html = get_html(url)
##사이트에 table 3개중 2번째
table = html.find_all('table', {'class' : 'table_3'})[1]
##가장최근거래 / 가장마지막거래
l_hoga = table.find_all('tr', {'class' : 'gray'})[0]
## 체결가 / 거래의 리스트 0: 체결시간 1: 체결가 2: 쳬결량
t_hoga = int(l_hoga.find_all('td')[1].text.replace(',',''))
##현재가정보
p_current = int(html.find('font', {'class' : 'f3_r'}).text.replace(',',''))
##시간외 체결가 상승률
ratio = round(100*(t_hoga/p_current - 1),2)
##종목이름
n_stock = html.find('font', {'class' : 'f1'}).text
print([n_stock,code,str(ratio)+'%',p_current,t_hoga])
get_stock_after_market_crawling('005930')
print('모두의 파이썬')
※좋아요/댓글은 서로를 응원합니다!
'파이썬 > 크롤링' 카테고리의 다른 글
[python-파이썬] 15 네이버에서 지역별 인구정보 크롤링 (crawling) - 2탄 (2) | 2022.05.05 |
---|---|
[python-파이썬] 11 유튜브에서 동영상 정보 크롤링 (crawling) - 2탄 (0) | 2022.04.28 |
[python-파이썬] 12 빗썸에서 호가정보 크롤링 (crawling) (0) | 2022.04.26 |
[python-파이썬] 16 멜론에서 인기순위 크롤링 (crawling) (0) | 2022.04.23 |
[python-파이썬] 17 네이버웹툰 순위정보 크롤링 (crawling) (0) | 2022.04.23 |