R中的Web报废数据表无法正常工作,XML或getURL

时间:2016-07-26 20:29:37

标签: r web-scraping datatables

通常我从站点获取表数据没有任何问题,但这个问题让我陷入了困境。

我尝试过该网站的各种建议: [R: Scraping Site, Incrementing Loop by Date in URL, Saving To CSV [Scraping from aspx website using R [web scraping in R

我尝试过两种方法尝试从网站上获取内容并最终出现错误。

第一种方法:

#####Reading in data
library(RCurl)
library(XML)
library(xts)

#pulling rainfall data csv
direct_rainfall <- read.csv(url(getURL("http://cdec.water.ca.gov  /cgi-progs/getMonthlyCSV?station_id=CVT&dur_code=M&sensor_num=2&start_date=1/1/2000&end_date=now")))

以下列错误结束: 函数错误(type,msg,asError = TRUE):   无法连接到cdec.water.ca.gov端口80:超时

第二种方法:

#xml data pull method
require(XML)

url = "http://cdec.water.ca.gov/cgi-progs/getMonthlyCSV?station_id=CVT&dur_code=M&sensor_num=2&start_date=1/1/2000&end_date=now"
doc = htmlParse(url)

哪一端有以下错误: 错误:无法加载外部实体“http://cdec.water.ca.gov/cgi-progs/getMonthlyCSV?station_id=CVT&dur_code=M&sensor_num=2&start_date=1/1/2000&end_date=now

任何指导都将不胜感激。当我尝试从URL中提取时,我无法弄清楚为什么我什么都没得到。

谢谢!

1 个答案:

答案 0 :(得分:2)

如果您查看网站,它是一个格式合理的CSV格式。令人高兴的是,如果您传递read.csv一个URL,它会自动为您处理连接,所以您真正需要的是:

url <- 'http://cdec.water.ca.gov/cgi-progs/getMonthlyCSV?station_id=CVT&dur_code=M&sensor_num=2&start_date=1/1/2000&end_date=now'

df <- read.csv(url, skip = 3, nrows = 17, na.strings = 'm')

df[1:5,1:10]
##   X.station. X.sensor. X.year. X.month.   X01   X02  X03   X04  X05  X06
## 1        CVT         2    2000       NA 20.90 19.44 3.74  3.31 5.02 0.85
## 2        CVT         2    2001       NA  7.23  9.53 3.86  7.47 0.00 0.15
## 3        CVT         2    2002       NA  3.60  4.43 8.71  2.76 2.78 0.00
## 4        CVT         2    2003       NA  1.71  4.34 4.45 13.45 2.95 0.00
## 5        CVT         2    2004       NA  3.41 10.57 1.80  0.87 0.90 0.00