반응형
이전에 포스팅한 주가정보 조회하기 코드에서 만약 주식종목코드가 잘못되었을 경우에는 오류가 발생할 수 있습니다.
오류가 발생하면 실행되던 코드가 오류를 디스플레이하면서 멈추게 되는데, 이러면 짜증이 날 듯 합니다.
그래서 오류가 발생시에 코드를 멈추지 않고 오류발생을 알려주면서 오류가 발생된 주식종목을 삭제하거나 수정할 수 있게 코드를 좀더 보완했습니다.
import requests from bs4 import BeautifulSoup stock_list = [] # 관심종목 목록 stock_item = ["", ""] # 추가할 관심종목 입력 sel = "" st_no = "" st_name = "" # 관심종목 이름 입력 st_code = "" # 관심족옥 코드 입력 url = "" url_temp = "https://finance.naver.com/item/main.nhn?code=" while True: print ("==========") print ("96 : 관심종목 추가") # 주식종목 추가 print ("97 : 관심종목 수정") # 주식종목 수정 print ("98 : 관심종목 삭제") # 주식종목 삭제 print ("99 : 종료") print ("종목코드 번호 : 선택한 종목 주가정보 조회") print ("==========") i = 0 for i in range ( len(stock_list) ): print (i, " - ", stock_list[i][0], stock_list[i][1]) i = i + 1 print ("==========") sel = input ("원하는 항목을 입력하세요 : ") sel_no = int(sel) if sel == "96": # 새로운 주식종목 추가 st_name = input ("종목이름 : ") st_code = input ("종목코드 : ") stock_item[0] = st_name stock_item[1] = st_code stock_list.append(list(stock_item)) elif sel == "97": st_no = input ("종목항목번호 : ") st_name = input ("종목이름 : ") st_code = input ("종목코드 : ") stock_item[0] = st_name stock_item[1] = st_code stock_list.copy(list(stock_item)) # 수정한 종목코드를 목록에 복사 elif sel == "98": # 지정된 주식종목 삭제 st_no = input ("종목항목번호 : ") del stock_list[ int(st_no) ] elif sel == "99": # 종료 break else: # 선택한 주식종목 주가정보 보여주기 url = url_temp + stock_list[sel_no][1] response = requests.get (url) if response.status_code == 200: html = response.text soup = BeautifulSoup (html, 'html.parser') print ("----------") try: # 오류발생을 처리 print (soup.dl.text) except: print ("주식종목코드 오류") print ("----------") |
아래와 같이 삼성전자를 예를 들어 보면 종목코드를 잘못 입력했습니다.
원하는 항목을 입력하세요 : 96 종목이름 : samsung 종목코드 : 111 ========== 96 : 관심종목 추가 97 : 관심종목 수정 98 : 관심종목 삭제 99 : 종료 종목코드 번호 : 선택한 종목 주가정보 조회 ========== |
만약 삼성전자 주가정보를 조회하면 에러가 발생됩니다 (AttributeError).
런타임 에러가 발생되면 바로 에러표시를 하면서 코드가 멈추게 되는데, 오류처리를 하여 발생한 오류표시를 하고 계속 코드는 동작합니다.
원하는 항목을 입력하세요 : 0 ---------- 주식종목코드 오류 ---------- ========== |
그러면 삼성전자 종목코드를 수정하면 아래와 같이 수정됨을 알 수 있습니다.
원하는 항목을 입력하세요 : 97 종목항목번호 : 0 종목이름 : 삼성전자 종목코드 : 005930 ========== 96 : 관심종목 추가 97 : 관심종목 수정 98 : 관심종목 삭제 99 : 종료 종목코드 번호 : 선택한 종목 주가정보 조회 ========== 0 - 삼성전자 005930 ========== |
이제 런타임 오류도 문제없이 처리하고 잘못된 종목코드도 수정할 수 있게 되었습니다.
반응형
'파이썬 (Python) > 파이썬 실전예제' 카테고리의 다른 글
[파이썬] 관심주식종목 목록에 종목 추가/삭제가능 및 선택한 주가정보을 조회하기 (네이버 증권 사이트 이용) (0) | 2021.06.27 |
---|---|
[파이썬] 네이버 증권 사이트에서 특정 종목 주가 보기 (0) | 2021.06.27 |
파이썬에서 특정 인터넷 사이트 페이지 내용을 가져오는 방법 (웹크롤링) (0) | 2021.06.27 |