R脚本从NOAA FTP读取大数据的固定宽度文件只抓取部分表

时间:2017-06-01 14:19:10

标签: r web-scraping noaa

你好R新手,所以如果这是一个简单的解决方案我会事先道歉。

我试图每天从NOAA的数据库中获取降水数据一次,这个功能完美地工作了几个月,但NOAA增加了表的大小,现在我只返回部分表:从第一行开始但是每个运行不同的结束行。似乎在整个表加载之前数据被刮掉了。如果有任何关于如何抓住整个桌子的建议那么好。

这是我过去使用的代码,但是现在一次运行将获取所有代码行,而其他代码则停止一半/四分之一/等。

Temp = read.fwf("ftp://ftp.ncdc.noaa.gov/pub/data/ghcn/daily/all/USW00054779.dly",
                widths = c(11, 4, 2, 4, rep(c(5, 1, 1, 1),31)))

提前谢谢!

1 个答案:

答案 0 :(得分:0)

ghcn_url <- "ftp://ftp.ncdc.noaa.gov/pub/data/ghcn/daily/all/USW00054779.dly"
ghcn_fil <- basename(ghcn_url)

if (!file.exists(ghcn_fil)) download.file(ghcn_url, ghcn_fil)

tmp <- read.fwf(ghcn_fil, widths = c(11, 4, 2, 4, rep(c(5, 1, 1, 1), 31)))

如果您的数据处理(或其他问题)强制重新处理目标文件(即您可以读取本地副本并再次抓取它),这样做的另一个好处是对远程服务器友好。

这也不是网络抓取。它正在读取固定宽度的文件。你应该改变标题。