上次《Python手把手爬取 PPT 八卦版最新話題!》教大家爬取一頁後,有許多讀者好奇如何多個頁面。只要可以知道爬2頁面以上,整個PTT爬下來就不是夢了XD 。如果是第一次看我的文章的讀者,請一定要先看前面幾天文章喔!前導重要觀念!一步一步看下來會比較順利喔!

要跨頁面爬取PTT 八卦版有兩個關鍵:

  1. PTT 八卦版如何換頁,有沒有什麼規則?
  2. Python 如何實作爬取多個頁面?

PTT 八卦版如何換頁

PTT 八卦版規則是什麼呢? 如果有眼尖的網友看一定會發現,當你按下 “上頁”的時候整個PTT的網址會不斷的由大了的數字往小的數字前進(如下圖) 。所以PTT 的規則是:

透過 index 後方的數字控制網頁換頁!

然後請讀者記住第一個從index.html按下”下頁”馬上出現的數字。下圖為例就是”39532" 等等會用到喔!

PPT的網址會不斷的由大了的數字往小的數字

所以你可以直接的在瀏覽器的”網址列”中,於index後面直接打入一個數字。按下enter就可以很直接的進到先前的一個頁面了!

於index後面直接打入一個數字

如同我們前一篇文章《一個觀念,開啟Python 網路爬蟲成長之路!》所說其實網路爬蟲就是模擬人類的行為所以我們只要 可以透過連結 這個到的網頁我們都可以對這個超連結實作 “get請求”。

那我們就可以利用這個特性,來實作多頁網路爬蟲。而且每一個頁面的網頁架構與格式全部都是一樣的。我們就可以很輕易的用少量的程式碼,來爬取大量的頁面喔!

Image by Free-Photos from Pixabay

Python 如何實作爬取多個頁面?

在上一篇文章中《Python手把手爬取 PPT 八卦版最新話題!》我們已經教大家爬單一個頁面。把上篇文章的程式碼包裝成一個get_one_page() 的function。所以我們只要知道如何去使用程式創造出大量的超連結,再丟到前一篇文章中的單頁程式碼就可以了!

再我們知道超連結的規則後,就只要使用 For 迴圈產生大量連結就可以了。如果對於for 迴圈運作不是很熟悉的人可以參考《商管人也可以秒懂的Python For 迴圈思維!》。這只有一個要特別注意:字串跟數字要可以連接要使用str() 將數字轉換為字串。

創建多個連續 連結。

實際只要把連結丟到我們自己建立的 get_one_page() 中就可以了!

整合後程式碼
執行結果。

--

--

zino lin
Marketingdatascience

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