Word VBA爬蟲在此介紹比較特殊的實際範例,為了瞭解網頁結構,先取得 Html文件分析之後,在Excel依照網站規則設計迴圈程式,批次大量執行取得所需要的資料。
目錄
Toggle本書第三節介紹如何取得網頁排行榜,當時是將資料分別下載到各個工作表,然後用特別的樞紐方法,將這些資料彙總在一起。其實以數據分析而言,首先應該將取得的資料整理成簡單明細表的方法,比較方便用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教學中心:
Excel巨集錄製教學、Excel巨集程式、VBA編輯器、VBA自學入門、VBA基礎語法、VBA基本應用、VBA UserForm、VBA VLOOKUP。
取得範例程式請前往VBA社團,訂閱請加入VBA Line社群。
VBA課程推薦:零基礎入門進階的20小時完整內容