跳到主要內容區塊

計資中心電子報C&INC E-paper

專題報導

網路爬蟲下載相簿教學
  • 卷期:v0062
  • 出版日期:2022-09-20

作者:趙怡軒 / 臺灣大學計算機及資訊網路中心程式設計組程式設計師


如何透過網路爬蟲自動化的將您想要的相簿照片下載進行分析處理呢?讓我們利用Python語言來進行操作,一步一步的帶領大家進入網路爬蟲的世界進行初探吧!

 

一、安裝軟體及套件

Anaconda3-2020.11-Windows-x86_64

是目前最受歡迎的Python資料科學平台之一,可以透過簡單的指令安裝套件,以及套件相依性將所有會用到的套件一併安裝。並且可以透過建立獨立的平台虛擬環境,以獨立不同專案所使用到的套件,避免安裝專案中不需要或是特殊版本的套件

Python 3.8.5

是一種易於學習、強大且被廣泛使用的高階程式語言,具有高可讀性和簡潔的語法,屬於通用型程式語言。並且具有豐富的函式庫,使其應用範圍很廣(如圖)。

 

20220920_006208_01


Requests 2.25.1

屬於一個簡單容易操作的HTTP函式庫


Jupyter 6.1.6

是一個Ipython的Web擴充套件,讓使用者可以在瀏覽器中直接編寫及執行程式


BeautifulSoup 4.9.3

是一個可以輕鬆從網路上抓取信息的函式庫。並可以透過如同jQuery的選擇進擷取所需資訊

 

二、小試身手

我們先從旅遊網頁來開始

https://travel.ettoday.net/category/新竹/

透過瀏覽器的開發人員工具尋找網頁中所需的HTML Element,再利用相同於jQuery選擇器的語法將Element選擇出來進行資料處理。

 

程式碼

20220920_006208_02

輸出結果

https://travel.ettoday.net/article/1909886.htm 2人玩六福村只要499元!超狂春節限時優惠 壽星1元暢玩劍湖山

https://travel.ettoday.net/article/1910060.htm 新竹騎到苗栗夢想更近了!「竹竹苗自行車道」今開工

https://travel.ettoday.net/article/1903400.htm 遲了一年原因曝!新竹「東門市場」年底升級 營業照常不影響

https://travel.ettoday.net/article/1905616.htm 全台療癒系水豚君景點!看超萌水豚君泡露天風呂 浴衣體驗如在日本

https://travel.ettoday.net/article/1902833.htm 不斷更新/佛光山取消煙火、台北書展改線上!大型活動異動懶人包

https://travel.ettoday.net/article/1902328.htm 更新/鹽水蜂炮取消 全台大型活動異動懶人包

 

網頁內容

20220920_006208_03

接著,讓我們以相簿為例,分析流程如下

20220920_006208_04

我們將程式切成幾個區塊來解釋

 

HTML Parser

透過BeaufifulSoup套件先Parse讀取近來的HTML原始碼,可以讓之後的呼叫的程式接著進行element的篩選

 

20220920_006208_05

 

取得相本內頁數

由於透過網頁點擊發現頁相簿多頁的呈現方式為URL*1, *2為不同頁面的呈現,因此只要先取得相簿最大頁面數,然後以迴圈來進行頁面讀取

 

20220920_006208_06

 

擷取相片

將預下載的網址連結傳入,開始進行下載,當中為了讓下載看起來更清楚的之後下在的進度,因此使用了tqdm這個進度條套件,以及判斷檔案是否已經存在,避免重複下載。

20220920_006208_07

輸出結果

 

若檔案已存在

 

20220920_006208_08

 

下載進度呈現

 

20220920_006208_09

如此一來我們就完成了透過Python來進行相簿爬蟲程式了。

 

三、結論

透過Python來進行網路爬蟲可以處理大量以及重複的動作,簡化資料蒐集繁複的工序。對於日後不論是文字或是影像識別方面的機器學習有相當幫助,希望對正在同樣在學習爬蟲的朋友有所幫助。

 

附上完整程式碼:

20220920_006208_10

20220920_006208_11

20220920_006208_12

20220920_006208_13