Appia의 IT세상

파이썬[Python] 주식시장 휴장일 정보 크롤링하기(증권 거래소) 본문

Python/Python Crawler[크롤러]

파이썬[Python] 주식시장 휴장일 정보 크롤링하기(증권 거래소)

Appia 2021. 11. 17. 06:04
반응형

파이썬[Python] 주식시장 휴장일 정보 크롤링하기(증권 거래소)

파이썬[Python] 주식시장 휴장일 정보 크롤링하기(증권 거래소)

이번에는 주식 관련된 공부를 하면서, 휴장일에 대해서 사전에 확인할 수 있다면 얼마나 좋을까라는 생각을 해봤습니다. 그래서 관련된 정보를 찾다보니, 생각보다 많았습니다. 저 또한 관련된 포스팅을 제 블로그에 포스팅을 한적이 있습니다. 

주식시장 휴장일 확인하는 방법

 

주식시장 휴장일 확인하는 방법

주식시장 휴장일 확인하는 방법 몇년 전부터 주식 시장에 대한 열기가 매우 뜨거운 것이 사실입니다. 그래서, 많은 사람들은 주식을 투자하고, 때론 수익이 나기도 하고 손해가 나기도 합니다

appia.tistory.com

그래서 이번에는 관련해서 크롤링을 해볼까 합니다. 실제 이 부분을 적용하는데, 약간의 문제사항이 있었습니다. 처음에는 뷰티풀숩(beautifulsoup)을 이용하여 해볼까 하였습니다. 하지만, 이 부분들을 생각보다 쉽사리 되지 않았습니다. 그래서 이번에는 셀레늄(Selenium)을 이용하여 크롤링을 하게 되었습니다. 따라서, 이번 포스팅은 기본적으로 셀레늄(selenium)모듈이 설치되어야 하고, 관련해서 크롬 웹드라이버가 설치가 사전에 필요합니다. 혹, 설치가 안된 분들은 관련해서 다음 링크를 통해서 설치해주시길 바랍니다. 

파이썬[Python] 고급 크롤링을 위한 selenium 모듈 설치하기

 

파이썬[Python] 고급 크롤링을 위한 selenium 모듈 설치하기

파이썬[Python] 고급 크롤링을 위한 selenium 모듈 설치하기 먼저 크롤링 관련된 이야기를 하면서 뷰티풀 수프, Beautiful Soup을 이용하는 부분에 대해서 이야기를 해봤습니다. 그리고 그 부분을 통

appia.tistory.com

먼저, 위의 링크에서도 본 바와 같이 증권거래소의 홈페이지에서의 다음 부분을 통해서 크롤링을 진행할 것입니다. 

증권거래소 홈페이지 - 휴장일 정보 

휴장일 날짜 부분 확인 

그럼 HTML부분에서 각 부분을 크롤링하기 위해서 [copy selector]를 이용하여 해당 부분을 css selector로 어떻게 표시 되는지 살펴보겠습니다. 

휴장일 부분에 대한 selector 복사 

그럼 위에서 복사한 부분을 보면 다음과 같습니다. 

'#pagec4ca4238a0b923820dcc509a6f75849b > div:nth-child(2) > div.CI-GRID-WRAPPER > div.CI-GRID-MAIN-WRAPPER > div.CI-GRID-BODY-WRAPPER > div > div > table > tbody > tr:nth-child(1) > td:nth-child(1)'

여기에서 필요한 부분들로 css selctor를 구성해보도록 하겠습니다. 

'div:nth-child(2) > div.CI-GRID-WRAPPER > div.CI-GRID-MAIN-WRAPPER > div.CI-GRID-BODY-WRAPPER > div > div > table > tbody > tr'

그럼 이 부분을 이용하여 다음과 같이 코드 작성을 해보도록 하겠습니다. 

from selenium import webdriver

addr = "http://open.krx.co.kr/contents/MKD/01/0110/01100305/MKD01100305.jsp"

chromedriver = r'C:\dev_python\Webdriver\chromedriver.exe'
driver = webdriver.Chrome(chromedriver)

driver.get(addr)
time.sleep(10)
holiday = []
data = driver.find_elements_by_css_selector('div:nth-child(2) > div.CI-GRID-WRAPPER > div.CI-GRID-MAIN-WRAPPER > div.CI-GRID-BODY-WRAPPER > div > div > table > tbody > tr')
for item in data :
    print(item.text.split(' ')[0])

위의 부분을 출력하면 다음과 같은 결과가 나타납니다. 

2021-01-01
2021-02-11
2021-02-12
2021-03-01
2021-05-05
2021-05-19
2021-08-16
2021-09-20
2021-09-21
2021-09-22
2021-10-04
2021-10-11
2021-12-31

이와 같은 방법으로 휴장일만 출력을 할 수 있습니다. 

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

 

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

[윈도우10 Windows10] 크롬(Chrome)에서 웹페이지 항목 CSS Selector로 확인하기 웹크롤링을 하다보면, HTML과 CSS에 대해서 약간의 지식이 필요합니다. 그 부분을 바탕으로 필요한 부분을 크롤링 하기

appia.tistory.com

이번 포스팅에서는 파이썬[Python] 주식시장 휴장일 정보 크롤링하기(증권 거래소)라는 주제로 포스팅을 해봤습니다. 혹 궁금하신 점이나 문의 사항이 있으시면 언제든지 댓글 및 방명록에 글 남겨주시길 바랍니다. 감사합니다. 

반응형
Comments