【问题标题】:RSelenium - Storing data in an arrayRSelenium - 将数据存储在数组中
【发布时间】:2019-02-17 04:38:10
【问题描述】:

我正在从我网站中的事件列表中提取事件描述。 每个事件都是一个 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)

  }

【问题讨论】:

    标签: r rvest rselenium


    【解决方案1】:

    要将值保存在 R 中的数组中,您必须

    1) 创建数组/data.frame dta &lt;- data.frame(m=c(),n=c()) 然后保存到它 dta[i,1] &lt;- image_of_eventsdta[i,2] &lt;- description_of_evants 其中i 是数字迭代器

    2) 创建数组/data.frame 并使用rbind 添加像dta &lt;- rbind(dta, data.frame(m=images_of_events, n = description_of_events)) 这样的值

    【讨论】:

    • 我在全局 for 循环中添加了:for (i in events_urls) { m[i]
    • i 应该是数字,所以 i in 1:length(events_urls)i = 1 在循环之前和 i=i+1 内部和循环可以是任何东西 for(urls in events_urls)
    • 我在循环中添加了这个并且它起作用了:for (j in length(events_urls)){ m
    猜你喜欢
    • 2014-01-22
    • 1970-01-01
    • 2021-04-27
    • 2018-10-08
    • 2019-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-17
    相关资源
    最近更新 更多