用于循环翻页和附加表

时间:2017-05-30 13:32:13

标签: r for-loop

我正在尝试打开一个链接,然后创建一个.csv表,然后转到第2页并将数据附加到第一页的数据下面,依此类推,一旦到达最后一页,就应该停止导航。 / p>

 i=c(seq(1,250, 25))
 j=c(seq(26,250,25))
 n=c(seq(1,15,1)) #n = no. of pages 15 is the max. 

for (p in n){

for (k in j){

  for (l in i){
   tryCatch({  
  ara <- paste0("some website with multiple pages.......pageNumber=",p,"&startRecord=",l,"&endRecord=",k)

     mybrowser$navigate(ara)

   doc <- htmlParse(mybrowser$getPageSource()[[1]])
    Sys.sleep(1)

               docrf <<- readHTMLTable(doc)

               ab2<<-docrf$'SearchResultsTable'

               Sys.sleep(5)

               ab2%>%write_csv("C:/Users/Kisf/Documents/newlist2.csv",append=TRUE) #this is not appending data


    },error=function(e){})
    }
      }
   }

链接在无限循环中导航,而不是在页面号停止。 9这是最后一页。

我不确定我哪里出错了。

1 个答案:

答案 0 :(得分:0)

有三个嵌套for循环,每个页面解析90次。结果不是无限循环,但可能需要相当长的时间才能完成迭代。下面可能更接近您正在寻找的内容(假设每页可以解析25条记录)。

n <- seq_len(11) #number of pages to parse
step <- 25 #number of records to retrieve per page

for (p in n){
  aa <- paste0("http://.......pageNumber=", p, "&startRecord=", (p - 1) * step + 1, "&endRecord=", p * step)
  #other code as desired
}