Я пытаюсь собрать доступные списки квартир со следующей веб-страницы: https://3160599v2.onlineleasing.realpage.com/
Я использую реализацию Selenium для Python, но пока не нашел эффективного решения для программного получениясодержание.Мой самый базовый код - следующий, который в настоящее время просто возвращает нединамический исходный код HTML:
from selenium import webdriver
driver = webdriver.Chrome('/path_to_driver')
driver.get('https://3160599v2.onlineleasing.realpage.com/')
html = driver.page_source
Возвращенная переменная html
не содержит списков квартир, которые мне нужны.
Если я «проверю» элемент с помощью встроенного в Chrome инструмента проверки, я вижу, что содержимое находится в неклассифицированном iframe: <iframe frameborder="0" realpage-oll-widget="RealPage-OLL-Widget" style="width: 940px; border: none; overflow: hidden; height: 2251px;"></iframe>
Несколько дочерних элементов в этом iframe также могут видеть div<div class="main-content">
, которая содержит всю необходимую мне информацию.
Другие решения, которые я пробовал, включают реализацию явного WebDriverWait:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.CLASS_NAME, 'main-content')))
Я получаю TimeoutException с помощью этого метода, так как элемент не найден.
Я также пытался использовать метод driver.switch_to.frame()
, но безуспешно.
Единственными шагами, которые фактически позволили мне получить списки квартир с веб-страницы, были (с использованием Chrome):
- Вручную щелкните правой кнопкой мыши элемент списков на веб-странице
- Нажмите кнопку Inspect
- Найдите элемент div 'main-content'
- Вручную щелкните правой кнопкой мыши на этом элементе div и выберите Копировать -> Копировать элемент
Это неэффективное решение, так как я пытаюсь автоматизировать этот процесс.
Какя могу получить этот динамически сгенерированный контент с веб-страницы программным способом?