→ andrew43: 其實它只是靠iframe在呼叫不同的靜態網頁而已。 05/02 10:56
→ andrew43: 你仔細看原始碼就可發現呼叫的靜態網頁網址及規則。 05/02 10:58
→ andrew43: 例如 ./Data/mD20161.htm 就是 2016 一月。 05/02 10:58
→ corel: 感謝,原來還有這一個方法,剛剛還在研究RSelenium解法 05/02 11:17
→ andrew43: 中央氣象局非常多的網頁資料都用類似方法(選單控制 05/02 11:54
→ andrew43: iframe對象而iframe內是可直接讀取的靜態html)。 05/02 11:55
→ andrew43: 之前練習颱風和地震的歷史記錄,都可以這樣搞。 05/02 11:56
→ andrew43: 本來我很恨iframe的,不過這種情況的iframe就很可愛了:) 05/02 11:57
目前就依 andrew43大大 建議用靜態方式去抓取
doc <-
htmlParse("http://www.cwb.gov.tw/V7/climate/monthlyData/Data/mD201512.htm")
tableNodes <- getNodeSet(doc, "//table")
tb <- readHTMLTable(tableNodes[[2]])
資料的確是讀取下來了
但請教如何把每一筆 row 值各別儲存出來?
例如:
阿里山, 9.8, 18.0/5 .... 等
謝謝
※ 編輯: corel (1.168.242.6), 05/02/2016 12:16:33
※ 編輯: corel (1.168.242.6), 05/02/2016 12:22:29
→ andrew43: tb 已經是 data.frame 了,就 tb[第幾列, 第幾欄] 這樣 05/02 13:35
→ andrew43: 或 tb[第幾列, ] 取整列而 tb[, 第幾欄] 取整欄 05/02 13:36
→ andrew43: 只是基本的 data frame 取值而已。這是你想問的嗎? 05/02 13:37
沒錯,不過剛剛我太糾結於
a <- tb[23,1]
class(a)
印出來的 class 是 "factor"的問題
只不過我又延伸出另一個問題
home <- "http://www.cwb.gov.tw/V7/climate/monthlyData/mD.htm"
home <- htmlParse(home, encoding ="UTF-8")
抓出來是亂碼...
我有查網頁中的語言編碼是 utf-8 可是抓出來就是亂碼?
請問該如何修正,謝謝
※ 編輯: corel (1.168.242.6), 05/02/2016 14:15:36
※ 編輯: corel (1.168.242.6), 05/02/2016 14:16:27
→ corel: 不好意思問題有一點多... 05/02 14:20
→ celestialgod: windows用stri_conv轉到big5顯示才會正常 05/02 14:36
→ andrew43: factor是因為自動把字串欄轉成因子,但這通常沒關係, 05/02 15:07
→ andrew43: 硬要轉回字串就套 as.character() 就好了。 05/02 15:07