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