다른 프로그래밍 언어와 다르게 파이썬은 if뿐만이 아니라 for에도 else를 함께 사용할 수 있다.
for문을 다 돌고 난 다음 else문에 있는 코드가 실행된다.
사용 예시 코드:
lst = ['h','e','l','l','o']
for i in lst:
print(i)
else:
print('출력 끝')
# 출력결과
# h
# e
# l
# l
# o
# 출력 끝
다음으로는 for-else문 응용하여 api url를 호출해서 네이버 화요웹툰의 title 정보를 가져오는 코드다. 회사 업무에서 비슷한 코딩을 하다가 호출을 계속 실패하는 url가 있었다. 이 url에 대해서만 에러가 안 뜨면서 호출을 더 시도할 수 있는 방법을 찾다가 for else문을 발견하게 되었다.
코드:
import requests
from bs4 import BeautifulSoup
api_url = "https://m.search.naver.com/p/csearch/content/nqapirender.nhn?_callback=jQuery1124029673668409590115_1701161507812&key=webtoonDayOfWeek&where=nexearch&start=15&display=15&pkid=47&u1=TUESDAY&u2=FEMALE_READER"
def get_title_info(url):
show_cp_dct = {}
for _ in range(10):
try:
response = requests.get(url)
if response.status_code != 200:
raise ValueError("failed response status code: " + str(response.status_code))
html = response.text
soup = BeautifulSoup(html, 'html.parser')
title_info = soup.get_text()
break
except ValueError as e:
print(e)
print('api url:', url)
time.sleep(2)
else:
print("10번 시도에도 실패")
return title_info
title_info = get_word(api_url)
전처리는 안했다..