#jquery #python-3.x #selenium #web-scraping #beautifulsoup
#jquery #python-3.x #selenium #очистка веб-страниц #beautifulsoup
Вопрос:
Я уже пробовал
- Неявное и явное ожидание
- подождите.пока
- Модуль времени
Здесь я пытаюсь найти ссылку «Загрузить больше отзывов» на justdial. Вот ссылка. Пожалуйста, проверьте и помогите.
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
browser = webdriver.Chrome(ChromeDriverManager().install())
browser.get("https://www.justdial.com/Delhi/S-K-Premium-Par-Hari-Nagar/011PXX11-XX11-131128122154-
B8G6_BZDET")
elem = browser.find_element_by_xpath('//*[@id="lmrehd"]')
elem.click()
Пожалуйста, дайте мне какое-нибудь решение с объяснением.
Ответ №1:
Найдите тег span, который содержит Load more reviews в виде текста.
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 webdriver_manager.chrome import ChromeDriverManager
browser = webdriver.Chrome(ChromeDriverManager().install())
browser.get("https://www.justdial.com/Delhi/S-K-Premium-Par-Hari-Nagar/011PXX11-XX11-131128122154-B8G6_BZDET")
element = WebDriverWait(browser, 20).until(
EC.element_to_be_clickable((By.XPATH, "//span[text()='Load More Reviews..']")))
element.click()
browser.quit()
Ответ №2:
Этот веб-сайт динамический, идентификатор будет меняться каждый раз, когда вы перезагружаете страницу ,
Вы не можете использовать идентификатор как способ его очистки.
Попробуйте что-нибудь еще, например, текстовое содержимое