Appia의 IT세상

[파이썬 크롤링]네이버 주식 시가 총액 코스피,코스닥 항목 주식번호 확인하기 본문

Python/Python Crawler[크롤러]

[파이썬 크롤링]네이버 주식 시가 총액 코스피,코스닥 항목 주식번호 확인하기

Appia 2021. 10. 15. 06:41
반응형

[파이썬 크롤링]네이버 주식 시가 총액 코스피,코스닥 항목 주식번호 확인하기

[파이썬 크롤링]네이버 주식 시가 총액 코스피,코스닥 항목 주식번호 확인하기

이전 포스팅에서는 네이버 시가 총액을 바탕으로, 종목 이름과 종가를 확인하는 방법에 대해서 포스팅을 했습니다. 하지만, 이 부분들에 대해서 Html을 자세히 보다보니, 관련해서 각 종목의 주식 번호가 있다는 것을 확인할 수 있었습니다. 그래서 이번 포스팅에서는 이 부분을 바탕으로 주식 종목의 주식 번호을 추출하는 방법에 대해서 이야기를 해보도록 하겠습니다. 

 

먼저, 다음 링크를 바탕으로 관련된 항목을 진행해보도록 하겠습니다. 

https://finance.naver.com/sise/sise_market_sum.naver

 

시가총액 : 네이버 금융

관심종목의 실시간 주가를 가장 빠르게 확인하는 곳

finance.naver.com

여기에서 개발자 모드를 통해서 다음 부분을 확인하도록 하겠습니다. 각 부분을 검토해보면, 종목 이름이 나타나는데에 다음과 같은 부분이 나타나는 것을 알 수 있습니다. 

<a href="/item/main.naver?code=005930" class="tltle">삼성전자</a>

여기에서 code=005930이라는 부분이 각 종목에 대한 주식 종목에 대한 번호라는 것을 알 수 있습니다. 

네이버 시가 총액 개발자 모드 

그럼 이전 포스팅의 코딩에서 위의 부분을 바탕으로 활용할 수 있는 방법을 검토해보겠습니다. 다음 부분은 이전 포스팅에서 활용한 코드입니다.  

[파이썬 크롤링]네이버 주식 시가 총액 코스피전체 항목 출력하기

 

[파이썬 크롤링]네이버 주식 시가 총액 코스피전체 항목 출력하기

[파이썬 크롤링]네이버 주식 시가 총액 코스피전체 항목 출력하기 이전 포스팅에서는 네이버 주식에서 시갈총액의 첫번째 화면에 있는 항목과 가격에 대해서 출력을 하는 방법에 대해서

appia.tistory.com

from bs4 import BeautifulSoup

def return_value(address):
    res = requests.get(address)
    soup = BeautifulSoup(res.content, 'html.parser')


    items = soup.select('#contentarea > div.box_type_l > table.type_2 > tbody > tr')
    for item in items:

        try :
            if item['onmouseover'] == 'mouseOver(this)':
                print(item.select('td')[0].text +"\t" + item.select('td')[1].text+"\t"+ item.select('td')[2].text)

        except :
            continue

baseaddress = 'https://finance.naver.com/sise/sise_market_sum.naver?&page='
for i in range(1,35):
    return_value(baseaddress+str(i))

그럼 위의 부분을 활용하기 위해서는 일단, 디버그 모드로 다음 부분 검토해보겠습니다. 

item.select('td>a')[0]

그럼 여기에서 href속성을 결과물을 나누어 볼 수 있습니다. 

rawno = item.select('td>a')[0]['href'].split('=')

그럼 전체 이 부분을 바탕으로 전체 코드를 나열해보도록 하겠습니다. 

import requests
from bs4 import BeautifulSoup

def return_value(address):
    res = requests.get(address)
    soup = BeautifulSoup(res.content, 'html.parser')


    items = soup.select('#contentarea > div.box_type_l > table.type_2 > tbody > tr')
    for item in items:

        try :
            if item['onmouseover'] == 'mouseOver(this)':
                rawno = item.select('td>a')[0]['href'].split('=')
                print(rawno[1]+'\t'+item.select('td')[0].text +"\t" + item.select('td')[1].text+"\t"+ item.select('td')[2].text)

        except :
            continue

baseaddress = 'https://finance.naver.com/sise/sise_market_sum.naver?&page='
for i in range(1,35):
    return_value(baseaddress+str(i))

위의 코드를 실행하면 다음과 같은 결과가 나타납니다. 

005930	1	삼성전자	71,500
000660	2	SK하이닉스	94,000
035420	3	NAVER	388,500
207940	4	삼성바이오로직스	830,000
005935	5	삼성전자우	66,300
051910	6	LG화학	764,000
035720	7	카카오	117,500
006400	8	삼성SDI	686,000
005380	9	현대차	205,000
000270	10	기아	81,900
<... 중간생략 ...>

278420	1661	ARIRANG ESG우수기업	9,615
217770	1662	TIGER 원유선물인버스(H)	5,180
550043	1663	QV 인버스 레버리지 WTI원유 선물 ETN(H)	350
267500	1664	KBSTAR 미국장기국채선물인버스2X(합성 H)	6,035
510006	1665	대신 인버스 니켈선물 ETN(H)	4,715
001529	1666	동양3우B	35,500
334700	1667	KBSTAR 팔라듐선물인버스(H)	5,695
301400	1668	ARIRANG 코스닥150	13,905
397420	1669	KBSTAR 국채선물5년추종	49,075

이와 같이 가장 앞에 각 종목의 주식 번호가 출력이 됩니다. 이와 같은 방법으로 각 종목에 대한 종목 번호를 추출할 수 있습니다. 

 

Python[파이썬 주식] 국내 코스피, 코스닥 상장 회사 리스트 출력, CSV로 추출- pykrx

 

Python[파이썬 주식] 국내 코스피, 코스닥 상장 회사 리스트 출력, CSV로 추출- pykrx

Python[파이썬 주식] 국내 코스피, 코스닥 상장 회사 리스트 출력 - pykrx 이번 포스팅에서는 국내 상장되어 있는 코스프, 코스닥의 있는 회사들의 이름과 상장번호를 출력하는 부분들을 만

appia.tistory.com

이번 포스팅에서는 [파이썬 크롤링]네이버 주식 시가 총액 코스피,코스닥 항목 주식번호 확인하기라는 주제로 포스팅을 해봤습니다. 실제 이 부분에 대해서는 보다 쉽게 추출할 수 있는 방법은 다양하게 존재합니다. 하지만, 크롤링 공부를 하면서 살펴보기에는 도움이 될 것으로 판단됩니다. 혹 궁금하시거나 문의 사항이 있으시면 언제든지 댓글 및 방명록에 글 남겨주시길 바랍니다. 감사합니다.  

 

반응형
Comments