Устранение неполадок отзывов с использованием Selenium в Python - PullRequest
0 голосов
/ 06 февраля 2020

Я хотел бы почистить отзывы с этого сайта: https://www.sephora.com/product/the-porefessional-face-primer-P264900. Вот пример синтаксиса, который я нахожу при проверке отзыва:

<div class="css-7rv8g1 " data-comp="Ellipsis Box ">So good! This primer smooths my skin and blurs my pores so well! But, it is pretty mattifying so if you want a dewy look, this might not be for you.</div>

Я пробовал следующий код, который возвращает пустой список:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome('/…/chromedriver')
url = 'https://www.sephora.com/product/the-porefessional-face-primer-P264900'
driver.get(url)
reviews = driver.find_elements_by_xpath("//div[@id='ratings-reviews']//div[@data-comp='Ellipsis Box']")

Я пытался позвонить другие find_elements методы на driver безуспешны. Я также попробовал решение, изложенное в этом ответе , но получил TimeoutException от запуска следующего кода:

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

driver.get(url)
driver.execute_script("arguments[0].scrollIntoView(true);", WebDriverWait(driver,20).until(EC.visibility_of_element_located((By.XPATH, "//div[@id='tabpanel0']/div//b[contains(., 'What Else You Need to Know')]"))))
reviews = WebDriverWait(driver,20).until(EC.visibility_of_all_elements_located((By.XPATH, "//div[@data-comp='GridCell Box']//div[@data-comp='Ellipsis Box']")))

Как я могу использовать Selenium для очистки отзывов с этой страницы на Сайт Sephora?

1 Ответ

0 голосов
/ 06 февраля 2020

Вам нужно добавить пробел в свой xpath. У вас есть 'Ellipsis Box', когда он должен быть 'Ellipsis Box'

//div[@id='ratings-reviews']//div[@data-comp='Ellipsis Box ']

Я смог найти 6 элементов, используя исправленный xpath.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...