#r #rvest #rselenium
#r #rvest #rselenium
Вопрос:
Итак, я пытаюсь найти название и местоположение различных пивоварен в США по этой ссылке:
https://www.brewersassociation.org/directories/breweries/
Как вы можете видеть, загрузка HTML занимает секунду. Это означает, что когда я очищаю HTML-код с помощью Rselenium, он загружает только половину страницы, вот код, который я запускаю, который должен реплицироваться для всех, у кого есть Rselenium,
remDr <- RSelenium::remoteDriver(remoteServerAddr = "localhost",
port = 4445L,
browserName = "chrome")
remDr$open()
remDr$setTimeout(type="page load")
remDr$navigate("https://www.brewersassociation.org/directories/breweries/?location=MI")
remDr$screenshot(display=TRUE)
Однако, если вы посмотрите на скриншот, загружается только половина страницы. Я пробовал установить время ожидания и несколько других команд, но они, похоже, не позволяют странице правильно загружаться. Любые советы или идеи о том, как это исправить?
Ответ №1:
Вы могли бы попробовать это:
library(RSelenium)
driver <- rsDriver(browser=c("firefox"), port = 4567L)
remote_driver <- driver[["client"]]
remote_driver$navigate("https://www.brewersassociation.org/directories/breweries/?location=MI")
#You can wait 3 seconds
Sys.sleep(3)
#Now you can scroll down all page and wait for the full page
scroll_d <- remote_driver$findElement(using = "css", value = "body")
#This will scroll the page but is not enough, but is a way to create an automatization.
#If you scroll the page many times you are able to see all page.
scroll_d$sendKeysToElement(list(key = "end"))
#How? For example you can use the alphabet to monitor the list.
Этот ответ — просто способ / идея решить проблему.