Я написал несколько script в python, используя селен, чтобы скрестить имя и цену разных продуктов с сайта redmart. Мой скребок нажимает на ссылку, переходит на целевую страницу, анализирует данные оттуда. Тем не менее, проблема, с которой я сталкиваюсь с этим искателем, заключается в том, что у него очень мало элементов из страницы из-за метода медленной загрузки веб-страницы. Как я могу получить все данные с каждой страницы, контролирующие процесс ленивой загрузки? Я попытался использовать метод "выполнить script", но я сделал это неправильно. Вот 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)
counter = 0
while True:
try:
wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, "li.image-facets-pill")))
driver.find_elements_by_css_selector('img.image-facets-pill-image')[counter].click()
counter += 1
except IndexError:
break
# driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
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()