Я написал несколько script в python, используя селен, чтобы скрестить имя и цену разных продуктов с сайта redmart. Моя цель - щелкнуть по каждой категории среди 10 в верхней части главной страницы и проанализировать все продукты, идущие на целевую страницу. Однако, когда нажата категория, браузер находится на вновь открытой странице, поэтому на этом этапе необходимо снова перейти на главную страницу, чтобы щелкнуть другую из 10 ссылок категории. Мой скребок нажимает на ссылку, переходит на целевую страницу, анализирует данные оттуда, возвращается на главную страницу и нажимает на одну и ту же ссылку и делает все остальное снова и снова. Вот script, с которым я пытаюсь:
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
driver = webdriver.Chrome()
driver.get("https://redmart.com/bakery")
wait = WebDriverWait(driver, 10)
while True:
try:
wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, "li.image-facets-pill")))
driver.find_element_by_css_selector('img.image-facets-pill-image').click()
except:
break
for elems in wait.until(EC.presence_of_all_elements_located((By.CSS_SELECTOR, "li.productPreview"))):
name = elems.find_element_by_css_selector('h4[title] a').text
price = elems.find_element_by_css_selector('span[class^="ProductPrice__"]').text
print(name, price)
driver.back()
driver.quit()
Кстати, я думаю, что нужно настроить блок "try" и "except" в этом script, чтобы получить желаемый результат.