今天R語(yǔ)言給我?guī)土艘粋€(gè)大忙,簡(jiǎn)單的幾行代碼幾乎節(jié)省了我一天的時(shí)間,小白表示R語(yǔ)言太有用了!
問(wèn)題如下:
我想獲取網(wǎng)頁(yè)中表格里的數(shù)據(jù),網(wǎng)頁(yè)表格如下圖

但是呢,很坑爹的是,這個(gè)表格不能復(fù)制粘貼,Ctrl+C,Ctrl+V后出來(lái)的只是網(wǎng)址,估計(jì)是被禁用了復(fù)制粘貼功能。而如果一個(gè)一個(gè)敲的話工作量會(huì)很大,估計(jì)最后眼都要瞎了……
整個(gè)數(shù)據(jù)量如下,http://www.chinacustomsstat.com/aspx/1/NewData/Stat_Data.aspx?state=1&next=2¤cy=usd&year=2016

有2014-2017年四年,每年有7個(gè)項(xiàng)目,每個(gè)項(xiàng)目分成12個(gè)月,共計(jì)336個(gè)表,有的表內(nèi)容還特別多,數(shù)字特別大,如下所示:

照這個(gè)工作量,一個(gè)數(shù)一個(gè)數(shù)敲到Excel中的話,一天不吃不喝估計(jì)都搞不定。
幸好,我最近剛?cè)腴T了R……
聽說(shuō)R語(yǔ)言也有爬取數(shù)據(jù)的功能,于是在網(wǎng)上簡(jiǎn)單的搜了一些帖子后,利用了XML包,成功的將這網(wǎng)頁(yè)中的336個(gè)表存成了Excel格式。
代碼如下:
>install.packages(“XML”)#安裝XML包
>library(XML) #載入XML包
>u<-"http://www.chinacustomsstat.com/aspx/1/NewData/Stat_Class.aspx?state=1&t=2&guid=7146"? #寫入表格所在的網(wǎng)址
>tbls<-readHTMLTable(u) #分析網(wǎng)頁(yè)中的表格,如果網(wǎng)頁(yè)包含多個(gè)表格,需要確定讀取哪個(gè)表??赏ㄟ^(guò)識(shí)別表的行數(shù)來(lái)確定,具體見R語(yǔ)言網(wǎng)頁(yè)數(shù)據(jù)抓取的一個(gè)實(shí)例_戊甲_新浪博客
>pop<-readHTMLTable(u,which=1) #讀取網(wǎng)頁(yè)中的第一張表
>write.csv(pop,file="d:/pop.csv") #存儲(chǔ)pop為CSV文檔至D盤中
這樣,就快速實(shí)現(xiàn)了網(wǎng)頁(yè)中的數(shù)據(jù)爬取。第一次將R語(yǔ)言運(yùn)用到工作中去,灰常有成就感~但是畢竟有336個(gè)網(wǎng)頁(yè),最后要運(yùn)行336次代碼,工作量也是有的。各位童鞋如果有更好的方法可以更快速的導(dǎo)出數(shù)據(jù)的歡迎提供~