Appia의 IT세상

파이썬[Python] 주식시장 거래정지 항목 크롤링하기 본문

Python/Python Crawler[크롤러]

파이썬[Python] 주식시장 거래정지 항목 크롤링하기

Appia 2021. 11. 22. 06:51
반응형

파이썬[Python] 주식시장 거래정지 항목 크롤링하기

파이썬[Python] 주식시장 거래정지 항목 크롤링하기

주식시장을 확인하다보면, 생각보다 거래 정지가 되어 있는 항목들을 많이 확인할 수 있습니다. 그래서 이번 포스팅에서는 거래 정지 항목이 무엇인지에 대해서 크롤링해보는 포스팅을 해보고자 합니다. 

 

먼저, 네이버에 있는 거래 정지 항목이 무엇인지에 대해서 확인하기 위해서는 다음 링크에 있는 부분을 통해서 확인할 수 있습니다. 

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

 

거래정지 종목 : 네이버 금융

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

finance.naver.com

위의 링크를 클릭하면 다음과 같은 화면이 나타날 것입니다. 여기에서 개발자 도구를 이용하여 해당 항목이 어떻게 지칭 되는지에 대해서 확인을 해보도록 하겠습니다. 

[윈도우10 Windows10] 크롬(Chrome)에서 웹페이지 항목 HTML에서 확인하기

 

[윈도우10 Windows10] 크롬(Chrome)에서 웹페이지 항목 HTML에서 확인하기

[윈도우10 Windows10] 크롬(Chrome)에서 웹페이지 항목 HTML에서 확인하기 이전 포스팅에서는 개발자 도구를 통해서 HTML에 부분이 웹페이지에 어떤 부분을 표시하는 지에 대해서 확인한 적이 있습

appia.tistory.com

위의 부분을 참고하여, 관련된 부분을 확인하시고, 이 부분을 토대로 css selector를 추출해보도록 하겠습니다. 

거래 정지 항목 리스트 페이지 

이 부분에 대해서 css selector를 살펴보면 다음과 같습니다. 

'#contentarea > div.box_type_l > table > tbody > tr:nth-child(3)'

여기에서 필요로 한 부분을 선별해서, 다음 부분만 활용하도록 하겠습니다. 

'div.box_type_l table tr'

그 부분을 바탕으로 부티풀숩을 이용하여 크롤링과 디버깅을 이용하여 해당 부분이 어떻게 추출되었는지 살펴보겠습니다. 다음과 같은 화면이 나타나는 것을 볼 수 있습니다. 

1차 크롤링 결과에 대한 디버깅 화면 

위의 화면을 살펴보고, 한개의 객체을 선별하면 다음과 같은 부분을 확인할 수 있을 것입니다. 여기에서, text부분을 살펴보면 다음과 같이 번호, 날짜등이 표시가 되어 있습니다. 그래서 여기에서, 년도를 이용하여 해당항목들만 추출하겠습니다. 

1차 크롤링 결과에 대한 각 객체의 속성 구조화면 

그럼 이러한 부분들 토대로 다음과 같은 코드를 작성해보겠습니다. 

import requests
from bs4 import BeautifulSoup

def stop_kospi_kosdaq_list():
    baseaddress = 'https://finance.naver.com/sise/trading_halt.naver'
    stoplist = []
    res = requests.get(baseaddress)
    soup = BeautifulSoup(res.content, 'html.parser')


    items = soup.select('div.box_type_l table tr')
    for item in items:
        if len(item) == 9 and "2021" in item.text:

            print(item.text.split('\n')[2])

stop_kospi_kosdaq_list()

위의 코드를 실행하면 다음과 같은 결과가 나타납니다. 위에서 보이는 바와 같이 text안에 2021을 토대로 2021년 거래 정지 항목들에 대해서 1차 선별을 하도록 하겠습니다. 그리고 나서, 객체의 구성이 9개의 contents로 구성이 되어 있는 부분들에 대해서 선별하였습니다. 그리고 나서, 위에서 보이는 text부분을 split을 통해서 이름 부분만 추출하였습니다. 

휴온스블러썸
위메이드맥스
오리엔트정공
좋은사람들
코센
베셀
에코마이스터
멜파스
파마리서치바이오
GRT
지나인제약
다이노나
GV
SK텔레콤
협진
참존글로벌
ITX-AI
엔에이치스팩18호
원텍
대신밸런스제8호스팩
나라소프트
나노캠텍
유안타제5호스팩
매직마이크로
아이톡시
하나금융17호스팩
바른전자
하이소닉
자안바이오
OQP
연이비앤티
인터코스
대신밸런스제7호스팩
소리바다
엠젠플러스
경남제약헬스케어
엔지스테크널러지
테라셈
큐리언트
강원에너지
볼빅
미애부
뉴로스
센트럴인사이트
쌍용차
현진소재
이십일스토어
UCI
쎌마테라퓨틱스
메디앙스
COWON
제이웨이
슈펙스비앤피
코스온
에스디시스템
한국정밀기계
샘코
성안
태웅
에스앤더블류
엠앤씨생명과학
우리로
아이피몬스터
씨앗
유테크
명성티엔에스
지스마트글로벌
녹원씨엔아이
비츠로시스
대양제지
티티씨디펜스
인피니티엔티

이와 같은 방법으로 거래 정지 항목들에 대해서 선별할 수 있습니다. 

이번 포스팅에서는 파이썬[Python] 주식시장 거래정지 항목 크롤링하기라는 주제로 포스팅을 해봤습니다. 실제 이와 같은 방법으로 다양한 사이트들에서 원하는 정보들만 추출이 가능합니다. 혹 궁금하신 점이나 문의 사항이 있으시면 언제든지 댓글 및 방명록에 글 남겨주시길 바랍니다. 감사합니다. 

반응형
Comments