0

我正在尝试抓取一个执行 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
    )
} %...>% {
....

所以问题是 - 我如何将页面向下滚动到底部?或者,如何使“窗口大小”足够大以加载整个页面而无需向下滚动?

4

0 回答 0