RSelenium - хранение данных в массиве - PullRequest
0 голосов
/ 16 февраля 2019

Я извлекаю описание событий из списка событий на моем сайте.Каждое событие представляет собой ссылку href, которая ведет на другую страницу, где мы можем найти изображение и описание события.Я пытаюсь сохранить URL-адрес изображения и описание всех событий в массиве, поэтому в конце цикла я использовал приведенный ниже код, но получаю только изображение и описание последнего события:

      m<-c(images_of_events)
      n<-c( description_of_events)

 cc<-remDr$findElement(using = "css", "[class = '_24er']")
 cc<-remDr$getPageSource()
 page_events<-read_html(cc[[1]][1])
 links_events_data=html_nodes(page_events,'._24er > table > tbody > tr > td > 
 div> div._4dmk > a ')

events_urls<-html_attr(links_events_data,"href")

// цикл каждого события

for (i in events_urls) {
  remDr$navigate(paste("localhost://www.mywebsite",i,sep="")) 
  #get image
  imagewebElem <- remDr$findElement(using = "class", "scaledImageFitWidth")
  images_of_events<-imagewebElem $getElementAttribute("src")
  descriptionwebElem <-remDr$findElement(using = "css", "[class = '_63ew']")
  descriptionwebElem <-remDr$getPageSource()

  page_event_description<-read_html(descriptionwebElem[[1]][1])
  events_desc =html_nodes(page_event_description,'._63ew > span')

  description_of_events= html_text(events_desc)
  m<-c(images_of_events)
  n<-c( description_of_events)

  }

1 Ответ

0 голосов
/ 16 февраля 2019

Чтобы сохранить значения в массиве в R, вы должны

1) создать массив / data.frame dta <- data.frame(m=c(),n=c()), а затем сохранить в нем dta[i,1] <- image_of_events и dta[i,2] <- description_of_evants, где i - числовой итератор

2) создайте массив / data.frame и используйте rbind для добавления значений, таких как dta <- rbind(dta, data.frame(m=images_of_events, n = description_of_events))

...