我正在尝试抓取一个执行 javascript 的网站,并在用户向下滚动时添加新信息。我使用这个函数来获取 DOM:
library(crrri)
dump_DOM <- function(url) {
perform_with_chrome(function(client) {
Network <- client$Network
Page <- client$Page
Runtime <- client$Runtime
Network$enable() %...>% {
Page$enable()
} %...>% {
Network$setCacheDisabled(cacheDisabled = TRUE)
} %...>% {
Page$navigate(url = url)
} %...>% {
Page$loadEventFired()
} %...>% {
Runtime$evaluate(
expression = 'document.documentElement.outerHTML'
)
} %...>% (function(result) {
html <- result$result$value
return(html)
})
},
extra_args = '--no-sandbox')
}
website <- dump_DOM(url)
我找不到如何在无头 chrome 中滚动页面,所以我尝试通过在函数中添加以下行来更改窗口大小,但无济于事:
Emulation <- client$Emulation
Network$enable() %...>% {
Page$enable()
} %...>% {
Emulation$setDeviceMetricsOverride(
width = 1080,
height = 10000,
deviceScaleFactor = 0,
mobile = FALSE,
dontSetVisibleSize = FALSE
)
} %...>% {
....
所以问题是 - 我如何将页面向下滚动到底部?或者,如何使“窗口大小”足够大以加载整个页面而无需向下滚动?