Невозможно создать табличный контент с веб-страницы с помощью Selenium ⇐ Python
-
Гость
Невозможно создать табличный контент с веб-страницы с помощью Selenium
После того, как я нажму кнопку Просмотреть все часы, расположенную в верхнем левом углу рядом с кнопкой Сейчас закрыто на этой веб-странице, появится окно с расписанием. Я создал скрипт в Selenium, чтобы имитировать эти шаги. Однако результаты, которые дает сценарий, случайны. Я хочу получить оттуда табличное содержимое следующим образом:
из веб-драйвера импорта селена из selenium.webdriver.common.by импортировать из службы импорта selenium.webdriver.chrome.service из webdriver_manager.chrome импортировать ChromeDriverManager из selenium.webdriver.support.wait импортировать WebDriverWait из selenium.webdriver.support импортируйте ожидаемые_условия как EC параметры = веб-драйвер.ChromeOptions() options.add_argument('--user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/116.0.0.0 Safari/537.36') ссылка = "https://www.tripadvisor.com/Restaurant_ ... _York.html" драйвер = webdriver.Chrome(service=Service(ChromeDriverManager().install()),options=options) driver.get (ссылка) часы = WebDriverWait(driver,20).until(EC.presence_of_element_located((By.XPATH,"//*[@data-automation='top-info-hours']//span[contains(.,' Просмотреть все часы ')]"))) driver.execute_script("аргументы[0].click();",часы) для элемента в WebDriverWait(driver,20).until(EC.visibility_of_all_elements_located((By.XPATH,"//div[./span[.='Hours']]/following::div/div"))): print(elem.get_attribute('textContent')) Текущий результат:
Вс 17:00–23:00 Солнце 17:00–23:00 17:00–23:00 Вт17:00–22:00 Вт 17:00–22:00 17:00–22:00 Ср17:00 – 22:00 Обвенчались 17:00–22:00 17:00–22:00 Чт 17:00 – 22:00 Чт 17:00–22:00 17:00–22:00 Пт17:00 – 22:00 Пт 17:00–22:00 17:00–22:00 Сб17:00–22:00 Сидел 17:00–22:00 17:00–22:00 Ожидаемый результат:
Вс, 17:00–23:00 Вт 17:00–22:00 Ср, 17:00 – 22:00 Чт 17:00 – 22:00 Пт 17:00 – 22:00 Суббота, 17:00 – 22:00 Примечание: употребление селена обязательно.
После того, как я нажму кнопку Просмотреть все часы, расположенную в верхнем левом углу рядом с кнопкой Сейчас закрыто на этой веб-странице, появится окно с расписанием. Я создал скрипт в Selenium, чтобы имитировать эти шаги. Однако результаты, которые дает сценарий, случайны. Я хочу получить оттуда табличное содержимое следующим образом:
из веб-драйвера импорта селена из selenium.webdriver.common.by импортировать из службы импорта selenium.webdriver.chrome.service из webdriver_manager.chrome импортировать ChromeDriverManager из selenium.webdriver.support.wait импортировать WebDriverWait из selenium.webdriver.support импортируйте ожидаемые_условия как EC параметры = веб-драйвер.ChromeOptions() options.add_argument('--user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/116.0.0.0 Safari/537.36') ссылка = "https://www.tripadvisor.com/Restaurant_ ... _York.html" драйвер = webdriver.Chrome(service=Service(ChromeDriverManager().install()),options=options) driver.get (ссылка) часы = WebDriverWait(driver,20).until(EC.presence_of_element_located((By.XPATH,"//*[@data-automation='top-info-hours']//span[contains(.,' Просмотреть все часы ')]"))) driver.execute_script("аргументы[0].click();",часы) для элемента в WebDriverWait(driver,20).until(EC.visibility_of_all_elements_located((By.XPATH,"//div[./span[.='Hours']]/following::div/div"))): print(elem.get_attribute('textContent')) Текущий результат:
Вс 17:00–23:00 Солнце 17:00–23:00 17:00–23:00 Вт17:00–22:00 Вт 17:00–22:00 17:00–22:00 Ср17:00 – 22:00 Обвенчались 17:00–22:00 17:00–22:00 Чт 17:00 – 22:00 Чт 17:00–22:00 17:00–22:00 Пт17:00 – 22:00 Пт 17:00–22:00 17:00–22:00 Сб17:00–22:00 Сидел 17:00–22:00 17:00–22:00 Ожидаемый результат:
Вс, 17:00–23:00 Вт 17:00–22:00 Ср, 17:00 – 22:00 Чт 17:00 – 22:00 Пт 17:00 – 22:00 Суббота, 17:00 – 22:00 Примечание: употребление селена обязательно.