R_Language 板


LINE

來分享一下我的程式碼 library(magrittr) library(httr) library(rvest) library(XML) library(dplyr) library(stringr) setwd("J:/聖哲/資料運算/spider") data<-read.csv("test.csv", header=T, sep=",") #http://imgur.com/a/vpizi 我自己先用EXCEL創造出要載的年月日 這用R也可以做啦 #只是這個EXCEL之後還有其他功能 for (a in 1:length(data[,1])) { url="http://fhy.wra.gov.tw/ReservoirPage_2011/StorageCapacity.aspx" txt=GET(url) viewstate = txt %>% read_html() %>% html_nodes(., css="#__VIEWSTATE") %>% html_attr("value") #讀取viewstate cboSearch="所有水庫" cboYear=data[a,2] cboMonth=data[a,3] cboDay=data[a,4] #我的參數 dados <- list( 'ctl00$cphMain$cboSearch'=cboSearch, 'ctl00$cphMain$ucDate$cboYear'=cboYear, 'ctl00$cphMain$ucDate$cboMonth'=cboMonth, 'ctl00$cphMain$ucDate$cboDay'=cboDay, '__VIEWSTATE'=viewstate) #此網頁有很多$ list裡面不能直接打$ 要有單引號就沒這問題 r <- POST(url, body=dados, cookies=unlist(txt$cookies),encode = "form") res_text <- content(r, "text", encoding = "UTF-8") %>% `Encoding<-`("UTF-8") # Windows encodind issue res_text #看看資料有無出來 htmlParse(res_text,encoding = "utf8") tables <- readHTMLTable(htmlParse(res_text,encoding = "utf8"),stringsAsFactors=FALSE) View(tables[[1]]) #看看TABLE出來的資料有無正確 其實有些有跳欄位問題 但資料都有 name=tables[[1]][-1,1] water_day=tables[[1]][-1,2] time_day=paste(cboYear,"-",cboMonth,"-",cboDay,sep = "") rain=tables[[1]][-1,4] input=tables[[1]][-1,5] output=tables[[1]][-1,6] difference=tables[[1]][-1,7] time_now=tables[[1]][-1,8] height_now=tables[[1]][-1,9] water_now=tables[[1]][-1,10] water_percent_now=tables[[1]][-1,11] result=cbind(name,water_day,time_day,rain,input,output,difference,time_now,height_now,water_now,water_percent_now) colnames(result) <- c("水庫名稱","水庫基本數據_有效容量", "每日蓄水統計_統計時間","每日蓄水統計_集水區降雨量", "每日蓄水統計_進水量","每日蓄水統計_出水量", "每日蓄水統計_與昨日水位差","即時水情資料_水情時間", "即時水情資料_水位","即時水情資料_有效蓄水量", "即時水情資料_蓄水量百分比") #從table存取我要的資訊 write.csv(result, paste("./result/",time_day,".CSV",sep = "")) #每一天一個CSV檔案 之後可能需要 故先不做合併 } a = list.files("result") dir = paste("./result/",a,sep="") n = length(dir) merge.data = read.csv(file = dir[1],header=T,sep=",")[-54,-1] for (i in 2:n){ new.data = read.csv(file = dir[i], header=T, sep=",")[-54,-1] merge.data = rbind(merge.data,new.data) } write.csv(merge.data,file = "./merge.csv",row.names=F) #所有CSV合併成為一個檔案 ※ 引述《jack155861 (蕭)》之銘言: : ※ 引述《jack155861 (蕭)》之銘言: : : [問題類型]: : : 程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來) : : [軟體熟悉度]: : : 使用者(已經有用R 做過不少作品) : : [問題敘述]: : : 之前爬蟲都是用html網頁型態,最近遇到一個是需要先點選選單才能查詢資料的ASP網頁, : : 如下 : : http://fhy.wra.gov.tw/ReservoirPage_2011/StorageCapacity.aspx : : 假設我要載:水庫>2017/6/4 像這樣的資料時,他的網址並不會跟著變動 : : 要使用怎樣的語法會比較恰當 : : 請各位指點一下~"~ : 各位好 : 謝謝C大的說明 然後我又在網路上看到一個教學 他這個教學跟我網站的形式有點類似 : 網址如下:http://leoluyi.logdown.com/posts/406397-crawler-mops-2 : 我把我要爬蟲的網站 看了他的程式碼 他是屬於form data 如下圖 : http://imgur.com/a/Vy7mw : 依照上面教學網址是要把form data的資料都放到R的函數理頭 : res <- POST( : "http://fhy.wra.gov.tw/ReservoirPage_2011/StorageCapacity.aspx", : body = "XXXXX", : encode = "form") : 但是怎樣跑都跑不出來 跑的都是最新(2017/6/4)的資料 : 若我body只放以下這些有影響的參數也是如此 : ctl00$cphMain$cboSearch:防汛重點水庫 : ctl00$cphMain$ucDate$cboYear:2017 : ctl00$cphMain$ucDate$cboMonth:6 : ctl00$cphMain$ucDate$cboDay:2 : 請問各位大大 有哪裡用錯了嗎? --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.251.160.121
※ 文章網址: https://webptt.com/m.aspx?n=bbs/R_Language/M.1496796579.A.2FB.html
1F:→ jack155861: 如果有更好的寫法 也可以提出阿 06/07 08:53
2F:→ jack155861: 補充一點為何需要viewstate 因為每一天的viewstate不Y 06/07 08:55
3F:→ jack155861: 同,而其他的都相同 所有我就沒有放進去了 06/07 08:56







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:e-shopping站內搜尋

TOP