2016-07-26 3 views
0

通常、サイトからテーブルデータを取得する際に問題はありませんが、これはループのために私を投げています。RのWebスクラップデータテーブルが動作していない、XMLまたはgetURL

私はサイトから様々な提案を試してみた: [R: Scraping Site, Incrementing Loop by Date in URL, Saving To CSV [Scraping from aspx website using R [web scraping in R

は私がしようとすると、サイトから何かを得ると、エラーで終わる2つの方法を試してみました。

最初のアプローチ:これは、次のエラーで終了

#####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"))) 

:関数で エラー(タイプ、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

それはCSVだ、HTMLではありません。 'read.csv( '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'、skip = 3、nrows = 17 ) ' – alistaire

+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 
関連する問題