У вас логическая ошибка, и ее трудно отладить, потому что вы пытаетесь напечатать неформатированный HTML прямо на консоль.Чтобы облегчить себе задачу, вы должны как можно раньше заполнить текст вашими структурированными данными, используя dict.update()
или dict.setdefault()
.
Inлибо в интерактивной консоли Python, либо в работающей программе вы также можете получить доступ к самому последнему элементу из цикла вне его области действия, т.е.
menu = {}
for meal in meal_tag:
# some loops later...
menu.update({meal.text: {}})
# ...
import json
print(json.dumps(menu, indent=4))
print(meal.find_next_siblings('h5')[0].find_next_sibling('ul').find_all('li', recursive=False)[0].span.text)
Я рекомендую вам экспериментировать в интерпретаторе столько же, сколько и вы.can.
Вернемся к теме - ваша логическая ошибка, вероятно, как-то связана с тем, что print(real_item_list)
находится в другой области действия, чем я ожидаю, что вы это сделаете, но я считаю отладку вашего кода достаточно раздражающей.не заглядывать в него слишком глубоко.
Опять же, подчеркивая важность максимально простой отладки.
На самом деле проще было просто переписать его.Вы должны быть в состоянии выполнить цикл за 7 строк и 3 цикла.