docker - 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 只是无限期地运行。
关于为什么这不起作用或我如何解决它的任何想法?
解决方案
推荐阅读
- django - 通过modelformset更新时分配错误之前引用的Django局部变量
- mvvmcross - 导航后清除整个后台堆栈
- node.js - 在 mongodb 中按 + 查找分组
- linux - 在 linux 映像上创建 Dockerfile 并挂载 azure 文件共享
- spring-websocket - 在 Spring WebSocket 中使用 convertAndSendToUser 方法的标头问题
- kubernetes - DigitalOcean 上的 Kubernetes 集群证书颁发机构
- sql - 在两个日期之间插入值
- kotlin - 改造 kotlin 预期 begin_object 但是 begin_array
- lotus-notes - 用 query_string 分割多个参数的最简单方法是什么?
- flutter - 如何在 Flutter 中等待 setState?