Я использую селен, чтобы
- перейти к URL-адресу
- , прокрутить вниз (загрузка lazyloaded изображений)
Когда человек смотрит на автоматический браузер, в результате HTML содержит содержит лениво загруженный контент, но когда браузер не отображается на экране, ленивый контент отсутствует в HTML.
Примечания
- Если я наблюдаю браузер во время работы автоматизированного браузера (т.е. на экране моего ноутбука видно chrome), то получающийся HTML делает содержит загруженный контент
- Если браузер не открыт на экране (например, если я смотрю на что-то другое, например код, выполняемый в терминале), то загружаемый контент - , а не содержится в HTML!
Вопрос
Когда человек «смотрит» в браузер, загруженные данные записываются в извлечении HTML, но когда то же самое сделано программно, ленивые данные отсутствуют. Как так?
R код
library(RSelenium)
library(dplyr)
url %>% remDr$navigate(.)
webElem <- remDr$findElement("css", "body")
for(i in 1:50) { webElem$sendKeysToElement(list(key = "down_arrow")); Sys.sleep(0.02) } # Scroll down
webElem$click(buttonId = 0); Sys.sleep(0.02) # Click on page
# Repeats above scroll/click 4 more times to get to very bottom of page
# Get html
remDr$getPageSource() %>% .[[1]] %>% .[1] %>% read_html(.)