如何用R語言爬取網頁表格數據節省一天工作時間
問題如下:
我想獲取網頁中表格里的數據,網頁表格如下圖
但是呢,很坑爹的是,這個表格不能複製粘貼,Ctrl+C,Ctrl+V後出來的只是網址,估計是被禁用了複製粘貼功能。而如果一個一個敲的話工作量會很大,估計最後眼都要瞎了……
整個數據量如下,http://www.chinacustomsstat.com/aspx/1/NewData/Stat_Data.aspx?state=1&next=2¤cy=usd&year=2016
有2014-2017年四年,每年有7個項目,每個項目分成12個月,共計336個表,有的表內容還特別多,數字特別大,如下所示:照這個工作量,一個數一個數敲到Excel中的話,一天不吃不喝估計都搞不定。
幸好,我最近剛入門了R……
聽說R語言也有爬取數據的功能,於是在網上簡單的搜了一些帖子後,利用了XML包,成功的將這網頁中的336個表存成了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" #寫入表格所在的網址
>tbls<-readHTMLTable(u) #分析網頁中的表格,如果網頁包含多個表格,需要確定讀取哪個表。可通過識別表的行數來確定,具體見R語言網頁數據抓取的一個實例_戊甲_新浪博客
>pop<-readHTMLTable(u,which=1) #讀取網頁中的第一張表
>write.csv(pop,file="d:/pop.csv") #存儲pop為CSV文檔至D盤中
這樣,就快速實現了網頁中的數據爬取。第一次將R語言運用到工作中去,灰常有成就感~但是畢竟有336個網頁,最後要運行336次代碼,工作量也是有的。各位童鞋如果有更好的方法可以更快速的導出數據的歡迎提供~
推薦閱讀:
※R學習筆記--《R語言實戰》第4章
※用R語言處理Excel數據
※ggmap:使用ggplot2進行空間可視化繪圖(上篇)
※R語言爬蟲可視化——用數據來聊聊2017年首周各大城市空氣質量
※玩轉數據地圖系列之——地圖上的迷你條形圖