【问题标题】:Exporting scraped data to one CSV将抓取的数据导出到一个 CSV
【发布时间】:2018-10-08 08:05:34
【问题描述】:

我设法在R(rvest) 中收集选举信息,但现在我正在努力解决如何将数据保存在单独的CSV 文件 中,而是保存在一个 中CSV 文件

这是我的工作代码,我可以分别废弃第 11、12、13 页。

library(rvest)
library(xml2)

do.call(rbind, lapply(11:13, 
                  function(n) {
url <- paste0("http://www.cvk.gov.ua/pls/vnd2014/WP040?PT001F01=910&pf7331=", n)
mi <- read_html(url)%>% html_table(fill = TRUE)
mi[[8]]

file <- paste0("election2014_", n, ".csv")
if (!file.exists(file)) write.csv(mi[[8]], file) 
Sys.sleep(5)
}))

我最终尝试这样做,但它没有按预期工作

write.csv(rbind(mi[[8]],url), file="election2014.csv") 

【问题讨论】:

  • 欢迎来到 StackOverflow!您确定您的网址有效吗?我收到了HTTP error 400
  • 嗨!我认为您的网址中有错字。由于您正在尝试get 请求,因此? 应该在您的网址中。
  • 我编辑了网址。它现在必须工作。

标签: r web-scraping rvest rbind


【解决方案1】:

试试这个:

library(rvest)
library(tidyverse)


scr<-function(n){
  url<-paste0("http://www.cvk.gov.ua/pls/vnd2014/WP040?PT001F01=910&pf7331=",n)

 df=read_html(url)%>%
    html_table(fill = TRUE)%>%
    .[[8]]%>%
    data.frame()
 colnames(df)<-df[1,] 
 df<-df[-1,]
 }

res<-11:13%>%
  map_df(.,scr)
write.csv2(res,"odin_tyr.csv")

【讨论】:

    【解决方案2】:

    我无法让您的代码工作,但您可以尝试在运行代码之前创建一个空数据框,然后在编写包含完整数据的 csv 文件之前执行此操作:

    df   = rbind(df,mi[[8]])
    

    您也可以考虑使用 purrr 包将您的 csv 文件合二为一:

    files = list.files("folder_name",pattern="*.csv",full.names = T)
    
    df = files %>%
      map(read_csv) %>%
      reduce(rbind)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-26
      • 2017-06-18
      相关资源
      最近更新 更多