Word VBA搭配Excel VBA使用,分析網址網頁結構網路爬蟲

Excel和Word VBA雖然使用相同程式語言,軟體不同仍然有些差異,兩者可搭配使用。本文以圖書館排行榜為例,分析網址網頁結構,不同方式網路爬蟲取得資料。

本書第三節介紹如何取得網頁排行榜,當時是將資料分別下載到各個工作表,然後用特別的樞紐方法,將這些資料彙總在一起。其實以數據分析而言,首先應該將取得的資料整理成簡單明細表的方法,比較方便用Excel工具進一步作種種分析,這一節即在前面六章的技術基礎上,完整說明如何以Excel及VBA搭配綜合應用。

一、2016年排行榜

國立清華大學圖書館2016年的借閱排行榜。

二、Word VBA程式

稍加修改第六章第四節的程式碼範例﹐於Word取得網頁原始碼整個的部份,在前面多加了兩行代碼,用意是可能會多次取得不同網頁,所以在程式最一開始設定先清除所有內容。

30:選取Word編輯區域的全部範圍;

40:輸入「Backspace」,也就是刪除鍵。

三、網頁原始碼

從網頁原始碼分析出每一年中文圖書借閱排行榜的網址架構,比照下面的西文圖書,有些是固定數,有些是變動數,如果要批次取得網頁資料,首先要瞭解這個結構。

四、2008年排行榜

2008年中文圖書借閱排行榜。

五、修改程式網址

和第二步驟同樣的Word VBA程式,修改程式碼中的網址,即可得到2008年借閱排行的網頁原始碼,如同前面章節所述,這是一個以表格資料為主的網頁。

六、Excel VBA程式

編寫VBA程式碼如下,上半部是「QueryTables.Add」的方式取得網頁資料,下半部是參考第四章第二節的方法調整格式。

七、2008年排行榜資料

執行「Chart_2008」巨集後的結果如下,很完美的一份2008年中文圖書排行榜。

八、CreateObject爬蟲

最後順帶一提,也可以用「CreateObject(“InternetExplorer.Application”)」的方式取得排行榜資料,但依第六章所介紹方法,會將所有資料都下載到一個儲存格內,相當不方便Excel作進一步整理。通常網頁帶表格的話,使用「QueryTables.Add」方法最有效率。

VBA巨集作為DLL檔案

作業系統裡面有個DLL檔案,全名為Dynamic Link Library(「動態連結資料庫」),它像是共享程式、或者說共享組件,例如Windows作用系統也有、應用軟體也有,都有一個類似的檔案視窗界面,每當我們在進行資料夾有關的儲存、另存、新增等操作,系統都會調用這個特定的DLL檔案,依照某些參數運行視窗功能。本書在前面六章以各式各樣的角度,介紹Excel VBA如何取得網頁資料,到了第七章,便是把前面所使用種種巨集當作DLL檔案,一一稍加變化,綜合應用於各個網站資料的數據分析上。

每天學習,每天充電:VBA爬蟲文章合集

最新文章: