name 'product_nal' is not defined
При запуске программы выбивает ошибку "name 'product_nal' is not defined", что странно учитывая то что я ее объявил в цикле и проблем возникать не должно, потому что другие переменные работают исправно
for page in range (1, pages_count):
with open (f'data/p-{page}.html', encoding = "UTF-8") as file: src = file.read()
soup = BeautifulSoup(src,'lxml')
items_card = soup.find_all('tr', class_='product-card')
for item in items_card:
product_article = item.find('a',class_='product-card__title').text.strip()
try:product_price = item.find ('span', class_='sum').text
except: print ('-')
try: product_nal = item.find ('span', class_='v-price-box__text v-price-box__text--out-stock').text
except: print ('Есть в наличии')
data.append ({
"product_article": product_article,
"product_price": product_price,
"product_nal": product_nal
})
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
Сейчас у вас переменная выставляется только при успешной отработке кода в блоке try, при выбрасывании эксепшена переменная остаётся не инициализированной.
Как вариант решения - при выбрасывании исключения заполняйте переменные тем текстом, который вы сейчас печатаете:
try:
product_price = item.find ('span', class_='sum').text
except:
product_price = '-'
try:
product_nal = item.find ('span', class_='v-price-box__text v-price-box__text--out-stock').text
except:
product_nal = 'Есть в наличии'