Нужна помощь с парсингом данных с сайта при помощи Selenium
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
import time
url = 'https://obnovi-oboi.ru/goods?category=oboi'
opts = Options()
#opts.add_argument("--headless")
browser = webdriver.Chrome(options=opts)
browser.get(url)
html = browser.find_element(by=By.TAG_NAME, value='html')
for i in range(4):
html.send_keys(Keys.PAGE_DOWN)
time.sleep(2)
xpath = '/html/body/main/section/div/div[2]/button'
browser.find_element(by=By.XPATH, value=xpath).click()
time.sleep(3)
container = browser.find_element(by=By.CLASS_NAME, value="row items")
oboi_items = container.find_element(By.CLASS_NAME, value="card good-item")#Тут уже много что попробовал...
browser.quit()
Тут код парсера , ссылка на сайт откуда я хочу взять картинку , цену и название обоев. Прошу помочь, что я делаю не так?!
Ответы (1 шт):
Автор решения: Vladimir Obrizan
→ Ссылка
В этих строках ошибка:
container = browser.find_element(by=By.CLASS_NAME, value="row items")
oboi_items = container.find_element(By.CLASS_NAME, value="card good-item")#Тут уже много что попробовал...
В Selenium с помощью локатора By.CLASS_NAME нельзя искать составные классы (в вашем случае это row items). Это описано в официальной документации. Т. е. вы можете искать или по row или по items, но не оба класса одновременно.
Попробуйте переписать локаторы на XPATH или CSS Selectors.