import requests
from bs4 import BeautifulSoup
from pymongo import MongoClient
client = MongoClient('mongodb+srv://test:sparta@cluster0.clu05af.mongodb.net/Cluster0?retryWrites=true&w=majority')
db = client.dbsparta
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'}
data = requests.get('https://www.genie.co.kr/chart/top200?ditc=M&rtm=N&ymd=20210701', headers=headers)
soup = BeautifulSoup(data.text, 'html.parser')
musics = soup.select('tbody> .list')
for music in musics:
if music is not None:
try:
temp_rank = music.select_one('td.number').text
del_rank = music.select_one('td.number >span').text
temp_title = music.select_one('td.info >a').text
temp_musician = music.select_one('td.info >.artist.ellipsis').text
except AttributeError : print(del_rank)
finally:
rank = temp_rank.replace(del_rank,'').strip()
title = temp_title.strip()
musician = temp_musician.strip()
print(rank,title,musician)
이부분에서
try와 except finally가 각각 다른 scope를 가진다고 해설을 해주셨는데
try와 finally가 try에서 선언한 변수들이 로컬변수라 서로 scope가 다르다면
실행하는 finally 의 출력문에 name error 가 떠야하는데
정상적으로 출력됩니다.
왜그런가요 ?