首页 > 解决方案 > RSelenium 与 docker 容器和 phantomjs 与 for 循环或 lappy 崩溃

问题描述

我正在尝试从 Rstudio 的网站中抓取一些信息,使用 RSelenium 控制运行 phantom js 的 docker 容器。

从我运行的 docker 工具箱:

docker run -d -p 4445:4444 wernight/phantomjs phantomjs --webdriver=4444

然后从 R 工作室运行:

remDr <- remoteDriver(remoteServerAddr = "192.168.99.100", port = 4445L)

然后我可以正常使用 remDr 对象

remDr$open()
remDr$navigate( "website_I_Scrape.com" )
# Etc.

当我尝试使用 lappy 或 for 循环对整个列表进行 Rselenium 调用时,我的问题就会出现,如下所示:

elem <- remDr$findElements( using = "css", value = ".ClassIwant" )
NAMES <- unlist( lapply( elem, function(x){ x$getElementText() } ) )

或者

elem <- remDr$findElements( using = "css", value = ".ClassIwant" )
NAMES<-c()
for(i in 1:length(elem)){
TEMP_TEXT<-Provincias[[i]]$getElementText()
NAMES<-c(NAMES, TEMP_TEXT)
}

我没有收到错误消息,R 只是无限期地运行。

关于为什么这不起作用或我如何解决它的任何想法?

标签: dockerweb-scrapingphantomjsrstudiorselenium

解决方案


推荐阅读