Повторяет данные при парсинге сайта
При парсинге сайта https://vkusnoitochka.ru/menu возникла проблема. В разделе "Новинки" нужно вывести название продукта, стоимость от, ссылку на фото продукта и дополнительную отметку (новинка). Всё правильно выводится, кроме Названия продукта. Вот как должно выглядеть:
Барселона Бургер от 239 ₽ https://vkusnoitochka.ru/resize/290x286/upload/iblock/aae/21412p8qq7npuh1ho5oklsbe3orwlyyo/large.png Новинка
Барселона Бургер с курицей от 215 ₽ https://vkusnoitochka.ru/resize/290x286/upload/iblock/aae/21412p8qq7npuh1ho5oklsbe3orwlyyo/large.png Новинка
Сырные треугольники Чоризо от 109 ₽ https://vkusnoitochka.ru/resize/290x286/upload/iblock/aae/21412p8qq7npuh1ho5oklsbe3orwlyyo/large.png Новинка
И т.д.
Но выводится:
Кидз Комбо обед с книжкой от 239 ₽ https://vkusnoitochka.ru/resize/290x286/upload/iblock/aae/21412p8qq7npuh1ho5oklsbe3orwlyyo/large.png Новинка
Кидз Комбо обед с книжкой от 215 ₽ https://vkusnoitochka.ru/resize/290x286/upload/iblock/aae/21412p8qq7npuh1ho5oklsbe3orwlyyo/large.png Новинка
Кидз Комбо обед с книжкой от 109 ₽ https://vkusnoitochka.ru/resize/290x286/upload/iblock/aae/21412p8qq7npuh1ho5oklsbe3orwlyyo/large.png Новинка
И т.д.
Буду очень благодарен если поможете с этой проблемой. Так же если несложно, мне нужно ещё помочь сохранить данные в csv или json файл. Пока что не сильно понимаю как это сделать.
Прикрепляю мой код:
import requests
from bs4 import BeautifulSoup
import csv
page = requests.get("https://vkusnoitochka.ru/menu")
soup = BeautifulSoup(page.text, "html.parser")
repos = soup.find('div', class_="page-catalog")
information = repos.find_all('div', class_="catalog-product__link-image")
for new in information:
new_product = (new.text).strip()
# print(new_product)
product_images = repos.find_all('img', class_="base-image__img")
for images in product_images:
images_link = "https://vkusnoitochka.ru" + images.get('src')
# print(images_link)
product_name = repos.find_all('div', class_="catalog-product-title")
for name in product_name:
names = (name).text
print(names)
# print(len(product_name))
items_cost = repos.find_all('p', class_="catalog-product__price")
for cost in items_cost:
cost_of_item = (cost.text)
cost_of_items = ' '.join(cost_of_item.split())
# print(cost_of_items)
print(f'{names} {cost_of_items} {images_link} {new_product}')
Источник: Stack Overflow на русском