首页 > 解决方案 > 使用 Rselenium 对链接向量进行抓取循环会给出“错误摘要:NoSuchWindow”

问题描述

我正在刮报纸,我遇到了一个问题。

我有这段代码实际上可以工作,但是 rmDR$navigate 在循环各种链接时存在问题,有时循环会正确刮掉前两个链接,有时是四次,但随后会引发此错误:

摘要:NoSuchWindow
详情:无法满足切换到不同窗口的请求,因为找不到该窗口

我对 rselenium 很陌生,所以我不确定我正在尝试的循环是否可以设置为工作。我已经用 Rvest 做了类似的事情,但我在这里面对的网页需要动态网页抓取。

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

#newsvector is a vector filled with links to the news I'm scraping

newsvector<-c('https://www.biobiochile.cl/noticias/nacional/region-metropolitana/2019/12/19/incendios-san-jose-de-maipo-balance-cifra-en-mas-de-mil-las-hectareas-consumidas-y-1-casa-quemada.shtml','https://www.biobiochile.cl/noticias/nacional/region-de-magallanes/2019/12/18/hercules-c-130-armada-pronostica-vientos-sobre-100-kmh-y-olas-de-hasta-6-metros-en-','https://www.biobiochile.cl/noticias/nacional/region-de-los-lagos/2019/12/18/incendio-consumio-gran-parte-de-camion-en-puerto-montt.shtml','https://www.biobiochile.cl/noticias/nacional/chile/2019/12/18/los-argumentos-de-las-diputadas-que-votaron-contra-la-paridad-de-genero-para-proceso-','https://www.biobiochile.cl/noticias/nacional/chile/2019/12/18/senadores-aprueban-indicaciones-sobre-paridad-pueblos-originarios-e-independientes-previo-a-')

newsscraped<-data.frame()

#The loop in question:

for(i in newsvector) {
  remDr$navigate(i)
  titulo<-unlist(remDr$findElement(using = "xpath",value="/html/body/div[6]/div[2]/div[3]/div[3]")$getElementText())
  date<-unlist(remDr$findElement(using = "xpath",value="/html/body/div[6]/div[2]/div[3]/div[2]")$getElementText())
  texto<-unlist(remDr$findElement(using = "xpath",value="/html/body/div[6]/div[2]/div[3]/div[5]/div[1]/div[4]/div[2]")$getElementText())
  texto<-as.character(texto)
  titulo<-as.character(titulo)
  date<-as.character(date)
  todo<-data.frame(texto,titulo,date, stringsAsFactors=FALSE)
  newsscraped<-rbind(newsscraped, todo, stringsAsFactors=FALSE)

标签: rfor-loopweb-scrapingrselenium

解决方案


推荐阅读