将数字分配给与R中的循环号相似的行

时间:2019-06-26 08:04:26

标签: r loops web-scraping rvest

我正在用R(rvest软件包)抓取一个网站,我想在每个已解析的csv文件中创建一个新列,然后1)分配与我的循环号相似的数字,或者2)创建一个新列并分配一个特殊值(我使用rvest节点获得了)。如果只刮一页,我可以分配这些数字,但这不是我所需要的。并且for循环可以顺利进行。

这是我的for循环代码

registered <- for (n in c(11:12)){     
  url_2019 <- 
paste0("https://www.cvk.gov.ua/pls/vnd2019/wp033pt001f01=919pf7331=", n 
,".html")
  results_2019 <- read_html(url_2019)%>% html_table(fill = TRUE)

results_2019[[6]]%>%as.data.frame

  #dir.create("registered_major_2019")
  file <- paste0("registered_major_2019/dist_", n, ".csv")
  if (!file.exists(file)) write.csv(results_2019[[6]], file, fileEncoding 
= "Windows-1251") 

Sys.sleep(0.5)
}

我知道要分开做

url_2019 <- 

paste0("https://www.cvk.gov.ua/pls/vnd2019/wp033pt001f01=919pf7331=11
.html")

results_2019 <- read_html(url_2019)%>% html_table(fill = TRUE)
pfont <-  read_html(url_2019)%>% html_node("font")%>%html_text()
# This is actually what I need
results_2019a <- data.frame(results_2019[[6]], pfont)

但是无法在for()中弄清楚该如何做。我试过了,但是没用:

registered <- for (n in c(11:12)){     
  url_2019 <- 
paste0("https://www.cvk.gov.ua/pls/vnd2019/wp033pt001f01=919pf7331=", n 
,".html")

results_2019 <- read_html(url_2019)%>% html_table(fill = TRUE)%>%data.frame()

pfont <-  read_html(url_2019)%>% html_node("font")%>%html_text()

  df <- data.frame(results_2019[[6]], pfont)

 #dir.create("registered_major_2019")
     file <- paste0("registered_major_2019/dist_", n, ".csv")
    if (!file.exists(file)) write.csv(df, file, fileEncoding = "Windows- 
 1251") 

  Sys.sleep(0.5)
 }

0 个答案:

没有答案