2018年11月1日 星期四

[補記]:8月份臺大資工訓練班「Python網路爬蟲實戰」

繼 6 月時上過用 Python 撈資料的課程後,8 月份又報名了臺大資工訓練班的「Python網路爬蟲實戰」,想了解更多 Python 的實際運用方式。

實際上了第一堂課,發現課程其實很需要 HTML 和 CSS 的基礎,但這兩項我都沒有學過,只好硬著頭皮記下那些標籤。(事後補學了 HTML 和 CSS,才更清楚爬蟲的原理)

上了一陣子,課程內容大致可歸類成 4 個部分:

  1. 網頁原始碼的判讀與搜尋關鍵標籤
    決定要爬的資料並找出其所在位置,這也是為何要理解 HTML 和 CSS 的原因。另外還有各種「選擇器」的運用,可以協助使用者做各種類別的選擇。(但選擇器的部分我其實學得不好,大部分還是直接複製網頁原始碼的選擇路徑)
  2. Python 套件:PyQuery 的教學與運用
    聽老師的介紹,應該是目前滿熱門的爬蟲套件,主要做靜態網頁的資料抓取和解譯。
  3. Python 爬蟲套件:Selenium 的教學與運用
    有很多小功能,能做動態網頁的資料擷取,缺點是沒辦法做解譯,還是得靠 PyQuery。
  4. 爬蟲程式的延伸應用
    除了把資料爬下來之外,老師也另外講授爬蟲的一些應用,例如網路機器人的原理、破解網路驗證碼的方式。

整體而言,上完 10 個小時的課後,我對爬蟲的原理確實有所了解。由於老師在課堂上示範的頁面是他特製的,結構簡單嚴謹、也沒有複雜的呈現、動畫、廣告、嵌入等等,所以在課堂上大家都爬得相當順利。只是,現實世界的網頁技術日新月異,不但頁面結構更複雜多層、變化更多,甚至也有不少反爬蟲的機制,例如 Cookie(不過,道高一尺、魔高一丈,老師也有教大家怎麼破解Cookie XD)所以認真要爬下自己想要且有用的資料,並不輕鬆。

這次課程最後,我也自製了一個小專案「電影爬爬看」,主要是將當期播映的所有電影名稱、評分、簡介、場次等內容都抓下來,看到資料跑出來的那一刻著實滿有成就感的~





沒有留言:

張貼留言