[問題] 抓取氣象局網頁資料

作者: corel (可羅)   2016-05-02 09:40:17
ctrl + y 可以刪除一整行,請將不需要的內容刪除
文章分類提示:
- 問題: 當你想要問問題時,請使用這個類別
[問題類型]:
程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來)
[軟體熟悉度]:
請把以下不需要的部份刪除
入門(寫過其他程式,只是對語法不熟悉)
[問題敘述]:
想擷取 http://www.cwb.gov.tw/V7/climate/monthlyData/mD.htm
天氣資料,但由於天氣的資料會依網頁上所選取的下拉式選單的值而有所變化
想請問各位先進,要如何讓R自動會帶值選取對應的資料?
例如: 2013年3月阿里山的平均溫度為9.9度
2013年4月阿里山的平均溫度為11.3度
謝謝
[環境敘述]:
請提供 sessionInfo() 的輸出結果,
裡面含有所有你使用的作業系統、R 的版本和套件版本資訊,
讓版友更容易找出錯誤
R version 3.2.4 Revised (2016-03-16 r70336)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 (build 7601) Service Pack 1
locale:
[1] LC_COLLATE=Chinese (Traditional)_Taiwan.950 LC_CTYPE=Chinese
(Traditional)_Taiwan.950 LC_MONETARY=Chinese (Traditional)_Taiwan.950
[4] LC_NUMERIC=C LC_TIME=Chinese
(Traditional)_Taiwan.950
attached base packages:
[1] stats graphics grDevices utils datasets methods base
loaded via a namespace (and not attached):
[1] httr_1.1.0 magrittr_1.5 R6_2.1.1 tools_3.2.4
RCurl_1.95-4.8 yaml_2.1.13 rappdirs_0.3 memoise_0.2.1 crayon_1.3.1
swirl_2.3.1-2
[11] stringi_1.0-1 stringr_1.0.0 digest_0.6.8 testthat_0.11.0
bitops_1.0-6
作者: andrew43 (討厭有好心推文後刪文者)   2016-05-02 10:56:00
其實它只是靠iframe在呼叫不同的靜態網頁而已。你仔細看原始碼就可發現呼叫的靜態網頁網址及規則。例如 ./Data/mD20161.htm 就是 2016 一月。
作者: corel (可羅)   2016-05-02 11:17:00
感謝,原來還有這一個方法,剛剛還在研究RSelenium解法
作者: andrew43 (討厭有好心推文後刪文者)   2016-05-02 11:54:00
中央氣象局非常多的網頁資料都用類似方法(選單控制iframe對象而iframe內是可直接讀取的靜態html)。之前練習颱風和地震的歷史記錄,都可以這樣搞。本來我很恨iframe的,不過這種情況的iframe就很可愛了:)tb 已經是 data.frame 了,就 tb[第幾列, 第幾欄] 這樣或 tb[第幾列, ] 取整列而 tb[, 第幾欄] 取整欄只是基本的 data frame 取值而已。這是你想問的嗎?
作者: corel (可羅)   2016-05-02 14:20:00
不好意思問題有一點多...
作者: celestialgod (天)   2016-05-02 14:36:00
windows用stri_conv轉到big5顯示才會正常
作者: andrew43 (討厭有好心推文後刪文者)   2016-05-02 15:07:00
factor是因為自動把字串欄轉成因子,但這通常沒關係,硬要轉回字串就套 as.character() 就好了。

Links booklink

Contact Us: admin [ a t ] ucptt.com