search
尋找貓咪~QQ 地點 桃園市桃園區 Taoyuan , Taoyuan

一分鐘教你用Excel從統計局抓數據!

現在呢,從網上爬蟲數據來做分析越來越火,如果不會這個skillset做數據處理簡直沒辦法裝逼。作為一個興趣廣泛的高能物理phd,自然不能被時代落下。

首先聲明,我並沒有學過HTML的語言,也沒學過VBA,所以自己解釋的邏輯應該是非常容易理解的,保證沒有任何編程基礎的都能學會。當然前提是你有Excel,沒有的話出門右轉有盜版。

文中的方法其實完全不限於抓取統計局的數據,任何網站都可以想抓就抓,簡直如若出入無人之境。(文末有彩蛋喲!)

好了,Let's rock!

起初呢,是因為之前業餘想試著分析分析的宏觀數據,上了一下統計局的網站,結果發現簡直是災難...

先來看看美聯儲的網站:(近期發現好多國內金融文章都開始用這個fed的圖了,是不是因為我之前的Macro文章傳播的呢~嘚瑟一下)

Federal Reserve Economic Data

數據量極其豐富,簡直想怎麼操作就怎麼操作,各種加減乘除還有對比應有盡有。

如上圖就是我想研究carry trade對於美國股市的影響,把他們放在一起可以把相關性看得一清二楚,對整理邏輯非常方便。

但是同時我也想研究國內的數據,然後就懵逼了。

國內統計局的網站是這樣,

Are u kidding me? 只有一個表?還是一個月發布一次?

這一對比就看出來社會主義勤勞質樸的優越性了,自己動手豐衣足食,一個一個數敲進去吧。

我這人比較懶,正當想要放棄的時候突然靈機一動,是不是爬蟲可以幫我這個忙呢?

趕緊在知乎上面狂搜一通,發現大部分都是Python語言,估計上手至少得花個好幾天。有沒有更簡單粗暴一點的呢?接著我就搜到了這個問題下面的答案,

簡直是救星,趕緊擼起袖子擼起來,不對,是幹起來。

這裡呢,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。

來源:潮汐社區 智咖專欄



熱門推薦

本文由 yidianzixun 提供 原文連結

寵物協尋 相信 終究能找到回家的路
寫了7763篇文章,獲得2次喜歡
留言回覆
回覆
精彩推薦