PPT大概是台灣話題更新最快速的討論地,再加上簡單的特性。許多初學者與商管人往往會把PPT 當作第一個練習的目標!這次就來手把手教學八卦版最新話題!

一、資料抓取

如同第一篇文章《一個觀念,開啟Python 網路爬蟲成長之路!》所說:網路爬蟲就是模擬使用者行為。所以我們透過request套件模擬瀏覽器發送Get請求到PPT。

資料抓取流程
資料抓取程式碼

或許有些第一次的讀者會疑惑為什麼會出現over18=1 的header。主要是為了突破PPT 的十八禁限制,可以參考《Cookie 突破PPT 八卦版十八禁限制》。 “Get請求”後我們會把 網頁程式碼都存在 response.text中。

執行結果

二、分析網頁原始碼(HTML)

但問題就來了我們該如何分析這些HTML語法呢?總不可能一個一個文字慢慢分析巴XD 好在有人開發了 Beautiful Soup 4模組 ,可以幫我們快速分析HTML語法。建議大家初學者不要直接去Beautiful Soup 4官網看,因為初學者可能會被嚇到了。直接Google 網路上有大量的中文教學資源喔!

三個步驟完成資料抓取:

1. 解析HTML

這裡最關鍵的是要把網頁程式碼丟入bs4第一個參數。

解析HTML 程式碼
bs4 語法

2.定位元素標籤

這裡就是最大的學問了。到底要定位到對的標籤(Tags)呢?在《以網路爬蟲角度解析HTML基本概念》中有提到如果要一次大量抓取資訊,我們就需要找到對的class。可以幫助我們省力非常大的力氣。

從網頁定位標籤步驟:

A. 到達PTT八卦版網頁。
B. 在網頁中右件>檢查。
C. 點 "開發者工具"上方一個正方形游標按鈕。
D. 移動到左邊我們要爬取的文字。
E. 點左邊視窗文字, “開發者工具”會自動幫你找到文字存在哪個的HTML語法與階層中

網頁定位標籤步驟,找到適當的class 值。

下方會有一些專有名詞,如:標籤、元素。在《以網路爬蟲角度解析HTML基本概念》會解釋喔

最後我們會發現標題雖然是在<a>標籤上,但是<a>標籤中沒有任何class 屬性。所以我們就會往上一層到<div class =”titles”>中,就可以讓我們操作bs4套件的find_all 方法來抓取大量資料。find_all第一個參數放的是標籤名稱(如下圖),第二個參數是Class 值

定位元素標籤。

你可能會問說:為什麼只要爬class=title 的資料就好了呢?因為你認真去每一個標題都查詢一次,會發現所有的標題都包含在class = title的div標籤內。

每個class = title 的div 標籤都含一個標題。

3.萃取文字

最後只要"定位"完的標籤(Tags),只要加上 .text。bs4套件會自動幫你萃取文字喔!

萃取文字每個標題程式碼

程式碼:

心聲:為了寫這篇結果先產了4篇文章才走到這裡XD。但我相信這篇文可以幫助更多人完整理解網路爬蟲架構的!

--

--

zino lin
誤闖數據叢林的商管人Zino

HI!我是Zino! 我曾任數據分析新創CTO且擔任過資策會與外貿協會Python講師。目前回到學界當菸酒生中。努力分享自己的經驗與所常!幫助更多人前進💪