이전에 포스팅한 주가정보 조회하기 코드에서 만약 주식종목코드가 잘못되었을
경우에는 오류가 발생할 수 있습니다.
오류가 발생하면 실행되던 코드가 오류를 디스플레이하면서 멈추게 되는데, 이러면 짜증이 날 듯 합니다.
그래서 오류가 발생시에 코드를 멈추지 않고 오류발생을 알려주면서 오류가 발생된
주식종목을 삭제하거나 수정할 수 있게 코드를 좀더 보완했습니다.
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 ========== |
이제 런타임 오류도 문제없이 처리하고 잘못된 종목코드도 수정할 수 있게 되었습니다.
댓글 없음:
댓글 쓰기