使用Linux为什么Google搜索结果页面源中的任何内容都会导致我的浏览器崩溃?
当我使用findElements从任何搜索中读取google href结果时,它都可以正常工作,但是当我使用remDr $ getPageSource()[[1]](改为使用rvest进行解析)时,它会永远崩溃我的WEBDRIVER。
以下示例可重现,可使用Linux Google计算引擎VM来获取错误:
再现网络驱动程序:
library(RSelenium)
library(rvest)
library(httr)
randsleep <- function(low=1,high=2){
Sys.sleep(sample(seq(low,high,by=0.001),1))
}
system("sudo kill -9 $(lsof -t -i:4444)")
system("sudo kill -9 $(lsof -t -i:4445)")
eCaps <- list(chromeOptions = list(
args = c('--headless', '--disable-gpu', '--window-size=1280,800')
))
randsleep()
rD <- rsDriver(port=4445L, extraCapabilities = eCaps, browser=c("chrome"), chromever = "76.0.3809.68")
randsleep()
remDr <- rD$client
再现搜索:
searchstring <- "dogs"
remDr$navigate("https://www.google.com")
randsleep(4,6)
googsearch <- remDr$findElement(using='xpath','//input[@name="q"]')
randsleep(2,3)
googsearch$sendKeysToElement(list(searchstring))
randsleep(2,3)
googsearch$submitElement()
randsleep(10,15)
作品精细度:
googres <- remDr$findElements(using='xpath','//div[@class="r"]/a')
reslinks <- sapply(seq_along(googres),FUN=function(x){googres[[x]]$getElementAttribute("href")})
崩溃WEBDRIVER:
ps1 <- remDr$getPageSource()
#ERROR:
Undefined error in httr call. httr output: Failed to connect to localhost port 4445: Connection refused