Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Парсинг на python

Дмитрий Виноградов Ученик (164), закрыт 1 год назад
У меня есть код на python, и дело в том, что этот код парсит сайт вкусно и точка, его меню. И при запуске этого кода он выводит только вкладку в меню "новинки", а как сделать так, что бы он выводил вкладку с бургерами и ролами?
Вот сам код:
import requests
from bs4 import BeautifulSoup

url = " https://vkusnoitochka.ru/menu "

# Загрузка HTML-кода веб-страницы
html = requests.get(url).content

# Создание объекта BeautifulSoup для парсинга HTML-кода
soup = BeautifulSoup(html, 'html.parser')

# Находим все элементы с классами "catalog-product-title" и "catalog-product__price"
burgers = soup.find_all(class_='catalog-product-title')
prices = soup.find_all(class_='catalog-product__price')

# Печатаем имя продукта и цену для каждого бургера
for i in range(len(burgers)):
print(burgers[i].text.strip(), end="")
print(prices[i].text.strip(), end="")
Лучший ответ
Kotakasi Мыслитель (6643) 1 год назад
Я решил бро. Код будет ниже, если что, то обращайся. Скажу что скачать для полноценного запуска и прочее. Код:

 from selenium import webdriver 
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.chrome.service import Service

# Находим драйвер для selenium, открываем браузер и переходим на страницу. Замени на свою директорию и про два слеша не забудь
service = Service('C:\\Users\\Kotakasi\\Desktop\\chromedriver.exe')
driver = webdriver.Chrome(service=service)
driver.get("https://vkusnoitochka.ru/menu")

# Ожидаем появления элемента и кликаем на него
wait = WebDriverWait(driver, timeout=30)
burgers_and_rolls = wait.until(EC.element_to_be_clickable((By.XPATH, "//span[contains(text(),'Бургеры и роллы')]")))
burgers_and_rolls.click()

# Находим элементы "catalog-product-title" и "catalog-product__price"
burgers = driver.find_elements(By.CLASS_NAME, 'catalog-product-title')
prices = driver.find_elements(By.CLASS_NAME, 'catalog-product__price')

# Печатаем имя продукта и цену для каждого бургера
for i in range(len(burgers)):
burgers = driver.find_elements(By.CLASS_NAME, 'catalog-product-title')
prices = driver.find_elements(By.CLASS_NAME, 'catalog-product__price')
print(f"{burgers[i].text.strip()} {prices[i].text.strip()}")

# Закрываем браузер
driver.quit()
Остальные ответы
Матвей Булюкин Мастер (1922) 1 год назад
Для того, чтобы парсить вкладку с бургерами и роллами вам нужно изменить url на https://vkusnoitochka.ru/menu/burgers-rolls , так как это ссылка на нужную вкладку на сайте. Вот как будет выглядеть измененный код:

import requests
from bs4 import BeautifulSoup

url = " https://vkusnoitochka.ru/menu/burgers-rolls "

Загрузка HTML-кода веб-страницы
html = requests.get(url).content

Создание объекта BeautifulSoup для парсинга HTML-кода
soup = BeautifulSoup(html, 'html.parser')

Находим все элементы с классами "catalog-product-title" и "catalog-product__price"
burgers = soup.find_all(class_='catalog-product-title')
prices = soup.find_all(class_='catalog-product__price')

Печатаем имя продукта и цену для каждого бургера
for i in range(len(burgers)):
print(burgers[i].text.strip(), end="")
print(prices[i].text.strip(), end="")
Дмитрий ВиноградовУченик (164) 1 год назад
При использовании этого кода, ничего не выводится
Матвей БулюкинМастер (1922) 1 год назад
уверен?
Матвей БулюкинМастер (1922) 1 год назад
а ну хотя да
Матвей БулюкинМастер (1922) 1 год назад
Если при использовании измененного кода для парсинга вкладки с бургерами и роллами ничего не выводится, то возможно проблема в том, что элементы с классами "catalog-product-title" и "catalog-product__price" не найдены на странице. Можно проверить, есть ли эти классы на странице, и если нет, то нужно использовать другие классы для поиска соответствующих элементов. Также стоит проверить, не блокирует ли сайт парсинг запросы с помощью капчи или других способов защиты.
Дмитрий ВиноградовУченик (164) 1 год назад
Дело в том, что первоночалный код он хоть что-то выводил, а этот вообще ничего не выводит
Матвей БулюкинМастер (1922) 1 год назад
и чо это
Дмитрий ВиноградовУченик (164) 1 год назад
Не я просто хз тогда как мне парсить ту вкладку в меню. Там даже Chat GPT пишет про то что измените URL на другую и всё
Kotakasi Мыслитель (6643) Дмитрий Виноградов, логично. Тебе сначала надо прожать её, чтобы парсить дальше. Для этого есть соответствующий драйвер.
Похожие вопросы