一分钟教你用Excel从统计局抓数据!
全世界只有3.14 %?的人關注了
數據與算法之美
現在呢,從網上爬蟲數據來做分析越來越火,如果不會這個skillset做數據處理簡直沒辦法裝逼。作為一個興趣廣泛的高能物理phd,自然不能被時代落下。
首先聲明,我并沒有學過HTML的語言,也沒學過VBA,所以自己解釋的邏輯應該是非常容易理解的,保證沒有任何編程基礎的都能學會。當然前提是你有Excel,沒有的話出門右轉有盜版。
文中的方法其實完全不限于抓取統計局的數據,任何網站都可以想抓就抓,簡直如若出入無人之境。(文末有彩蛋喲!)推薦閱讀《數據挖掘與分析》
好了,Let's rock!
起初呢,是因為之前業余想試著分析分析中國的宏觀數據,上了一下統計局的網站,結果發現簡直是災難...
先來看看美聯儲的網站:(近期發現好多國內金融文章都開始用這個fed的圖了,是不是因為我之前的Macro文章傳播的呢~嘚瑟一下)
Federal Reserve Economic Data
數據量極其豐富,簡直想怎么操作就怎么操作,各種加減乘除還有對比應有盡有。
如上圖就是我想研究carry trade對于美國股市的影響,把他們放在一起可以把相關性看得一清二楚,對整理邏輯非常方便。
但是同時我也想研究國內的數據,然后就懵逼了。
國內統計局的網站是這樣,
Are u kidding me? 只有一個表?還是一個月發布一次?
這一對比就看出來社會主義勤勞質樸的優越性了,自己動手豐衣足食,一個一個數敲進去吧。
我這人比較懶,正當想要放棄的時候突然靈機一動,是不是爬蟲可以幫我這個忙呢?
趕緊在知乎上面狂搜一通,發現大部分都是Python語言,估計上手至少得花個好幾天。有沒有更簡單粗暴一點的呢?接著我就搜到了這個問題下面的答案:
https://www.zhihu.com/question/47883186
簡直是救星,趕緊擼起袖子擼起來,不對,是干起來。
這里呢,Excel其實對于mac用戶非常不友好,因為從網上抓數據這個功能被刪掉了,畢竟是Windows的軟件...不過不用氣餒,我們還有Google doc。
當然,對于Windows用戶就沒有這個問題了。
先放上示意圖:
看到沒有!統計局的數據全在自己的Excel里了喲~
以后走哪兒數據抓到哪兒,遇神抓神,遇佛抓佛。
接下來就介紹一下具體是怎么操作的:
首先呢,我們需要打開一個Excel
然后把光偉正的統計局網頁地址放在第一格以示崇敬。(這里我選取的網頁是上個月公布的PMI指數,2017年2月中國制造業采購經理指數為51.6%)
接著,我們就開始從這個網頁抓取表格數據了:
自己也能抓數據了,想想有些小激動呢~
我們需要先任意選一個舒服的位置,輸入一句話:
=IMPORTHTML(A1,"table",1)
如下圖:
那么這句話是干什么呢?
具體pass給IMPORTHTML( )這個function的是三個argument值:
第一個值就是從A1,也就是統計局網頁地址所在Excel的位置來告訴這個function區哪兒抓數據。
第二個值就是選取“table”這個格式,也就是告訴這個function我們想要的是指定網頁上面的表格。我們可以從下面的注釋看到還有一個選項是“list”,這個是在HTML里面的另一個格式,我們需要的是表格,所以此處可以暫時忽略。(這里有一個很大的限制就是只能選取這個兩個格式,如果要做更復雜的condition判斷的話就不太可能了,如果stick to Excel的話可能需要借助VBA了。但這里我們只介紹最簡單的數據抓取方式。)
第三個值就是網頁中的第n個table。這里我選取網頁里的第一張表
好了,沒了。
是不是感覺意猶未盡呢?做好了接受高級裝逼知識的思想準備,結果咻的一聲就沒了?
如果你僅僅只是想要知道怎么用呢,就不用再繼續往下看了。
但是身為一個合格的科研人員,工作就是搞清楚為什么。接下來,我們可以更細致看一看具體這個function是怎么抓取的。
首先呢,我們需要用Google瀏覽器。因為這個瀏覽器有一個特殊的技能,那就是“Inspect”。
如下圖:
然后毫不猶豫的點開:
這右邊跳出來的一坨到底是什么東西!
不要急,我們慢慢看嘛。
首先呢,我們可以用一個快捷鍵command+shift+C(這里我猜Windows用戶應該是control+shift+C),然后移到左邊我們需要的表格上。
這個時候,驚人的事情發生了。右上角那一坨代碼會跟著自己的鼠標移動!
其實呢,這個快捷鍵做的事情很簡單,就是指出你鼠標所在位置的代碼。右上角那一坨東西就是這整個網頁的代碼,其中自然也包括了我們需要的表格部分的代碼。
Excel所做的事情呢,也就是從這一坨代碼里面找出我們需要的表格“table”,然后把表格的內容復制到Excel里面供我們盡情玩樂。
如下圖,我們可以看到“table”這個關鍵字吧,所指代的就是左邊的那張表,然后“table”其下的內容就是這張表是怎樣呈現在網頁上的。
看到現在我們應該可以理解Excel是怎么操作的吧,so easy~
但是對于統計局網站的數據抓取其實有一個問題,因為他是一個一個網頁發布的數據,并且跟其他數據混在一起隨機排列,所以說具體選取需要抓取的網頁還是得人工了。
當然Excel還有一個function叫做IMPORTxm_x_l( ),這個function是用來抓取某一個xpath_query的,不局限于上面IMPORTHTML( )這個function只能抓table或者list。
所以也可以借助這個function來將網頁中的信息,比如說搜索具體關鍵字的網頁地址輸入到Excel,然后再將這個網頁地址自動輸入到一開始的IMPORTHTML( ) function里面用來抓取所有選中網頁的table或者list。
其實利用VBA也可以做這件事,不過可能就需要另外學習一下VBA了,不過大概思路感覺應該是這樣。
當然如果有編程背景的最好還是用Python或者Java來做爬蟲啦,畢竟比較主流,工具包也比較多。后面我也許會再更新一下用Python來做這件事,不過,我懶。
最后的最后,再悄悄告訴一個宇宙無敵超級霹靂最最最簡單的方法,簡直獨門絕技,而且保證一秒鐘就學會,無需任何知識背景。
那就是,直接copy and paste。
來源:潮汐社區?智咖專欄
版權歸原作者所有,轉載僅供學習使用,不用于任何商業用途,如有侵權請留言聯系刪除,感謝合作。
精品課程推薦:
選購數學科普正版讀物
嚴選“數學思維好物”
送給孩子的益智禮物? ?| ??辦公室神器
算法工程師成長閱讀? ?| ??居家高科技
理工科男女實用型禮物精選? ?
數據與算法之美
用數據解決不可能
長按掃碼關注
總結
以上是生活随笔為你收集整理的一分钟教你用Excel从统计局抓数据!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 造作吧,Python快速入门!
- 下一篇: 专业学习频道,欢迎关注数锐学堂