Парсинг сайта, подгружаемого js на python

Сайт: "https://pkk.rosreestr.ru/#/search/55.01529354875843,83.00210978072299/15/@d98mbov9/8804912561-1-3?text=55.012395%2083.004747&type=2&inPoint=true&opened=54%3A35%3A72255" Контент сайта, подгружается javascript. Как получить полный код страницы. Объясните подробно. Заранее спасибо.


Ответы (1 шт):

Автор решения: Mr. JS

Если Вы хотите парсить динамически загружаемые на JavaScript сайты, следует использовать selenium вместо requests. При этом в вашем случае следует обратить внимание сразу на следующие моменты:

  1. Использовать WebDriverWait для ожидание окончания загрузки ресурса. Например, последним загружается ссылка с текстом "Print this article", в этом случае:
    ...
    driver.get(url)
    element = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.PARTIAL_LINK_TEXT , 'Print this article')))
    # url - адрес целевой страницы сайта, driver - Selenium WebDriver

  1. Важно также после загрузки страницы прокрутить её до конца. Например, посредством следующего кода:
    content = ''
    while True:
        driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
        time.sleep(1)
        if content != driver.page_source:
            content = driver.page_source
            continue
        else:
            break

    # content - содержимое, driver - Selenium WebDriver

Далее уже применяете к content для парсинга страницы lxml или beatifulsoup по вкусу.

Подробная документация:

https://selenium-python.readthedocs.io/

→ Ссылка