【AI60問】Q17網路爬蟲的9個工作流程?

by 提拔我園丁
緯育TibaMe AI小教室-Q17網路爬蟲的9個工作流程?

想要成為「 AI / 資料 科學家」,想要自動化抓取所需的大量資料,一定要先學會「網路爬蟲」。

「網路爬蟲」是什麼?

它是一種用來自動瀏覽全球資訊網的網路機器人,又稱為網路機器人、網路蜘蛛…等。

網路爬蟲 (web crawler) 會「自動」幫你把你想要的頁面資訊抓下來,以便事後生成索引供使用者搜尋。網路爬蟲應用性很廣,取決於你想要哪些資料、如何運用。

舉例來說:當我想找某個大企業的職缺,但搜尋結果超過一百筆,這時候,只需要將寫好的「網路爬蟲程式碼」,一次把想看的資料抓取下來,就不需要一個個點開觀看。不只侷限於工作領域、也可以應用到新聞、論壇,來了解現在的風向、數據分析、機器學習…等。

而資料的收集,是現今相當重要的工作項目之一,學會爬蟲我們可以避免透過「人工」效率低又耗時的方式搜集網站資料,而學網路爬蟲之前,基本上要先會一種程式語言,像是:Python、Java、C/C++…等等。

目前Python是最常使用執行網路爬寵的語言,學會 Python 語法之後,也可以透過 Python 及抓取網頁資料的具BeautifulSoup 和 Selenium,來撰寫爬蟲程式自動化地蒐集網路上的最新資料。

【推薦學習】

結帳輸入優惠碼「BLOGONLY200」,「快速闖關 Python 語法世界,程式實作不頭痛」線上課程現折$200!

「網路爬蟲」3件需要注意的平衡禮貌:

  1. 記得看 Robots 協議和 ToS 禁止,並遵守該網站規則。
  2. 成為「禮貌爬蟲」:一般瀏覽網站,其實只有送出少量請求;而網路爬蟲可以同時大量連線送出請求,小型伺服器真的無法負荷,可能導致直接當機。這樣會讓你爬不了、他人也無法瀏覽網頁,可能錯過重要的資訊。
  3. 為什麼你要取這個資料?網路爬蟲雖然讓你方便取得資料,但不要因為方便,而隨意取得全部資料。你之所以要網路爬蟲,是因為你需要的是某些特定資料

「網路爬蟲」是自動存取網站,及透過軟體程式取得資料。

下面這個是通用的爬蟲框架 (如圖17-1),讓大家更了解網路爬蟲的工作流程:

圖17-1 網路爬蟲工作流程
圖17-1 網路爬蟲工作流程

爬蟲工作基本流程:

1、獲取種子URL

首先在網路中選出一部分網頁,以這些網頁的連結位址作為種子URL,種子URL連結地址可以由用戶人為指定,也可以由用戶指定的某個或某幾個初始爬取網頁決定。

2、種子URL爬取頁面,並獲得新的URL

將這些種子URL,放入待抓取的URL佇列中,爬蟲從待抓取的URL佇列中依次讀取。

3、將URL透過DNS解析

4、把連結位址轉換為網站伺服器對應的IP位址

5、網頁下載

網頁下載器透過網站伺服器對網頁進行下載

6、網頁文檔

下載的網頁為網頁文檔形式

7、URL進行抽取

對網頁文檔中的URL進行抽取

8、過濾掉已經抓取的URL

9、重複爬取過程

對未進行抓取的URL繼續迴圈抓取,同時再從新網頁中獲取新URL,並重複上述的爬取過程,直至待抓取URL佇列為空。

其中,下載的網頁文檔一部分存會儲存到頁面庫中,等待建立索引跟後續處理,另外,也將網頁中的URL存入已抓取URL庫中,提供給步驟8進行過濾。

在編寫爬蟲的時候,通常會設置相應的停止條件,當過程滿足爬蟲系統設置的停止條件時就停止爬取。
相反地,若沒有設置停止條件,爬蟲會一直爬取下去,直到無法獲取新的URL地址為止。

這是一個基本的通用網路爬蟲框架及其工作流程,以下與你分享3堂網路爬蟲相關的課程推薦。

緯育TibaMe「網路爬蟲」相關課程推薦

結帳輸入優惠碼「BLOGONLY200」,購買下列任一堂指定線上課程現折$200!

成為 AI 科學家|網路爬蟲大師教你快速完成資料擷取
地表最好懂的Python網路爬蟲

緯育TibaMe已經有10萬人次來學習AI/資料科學知識或技術,若你想進一步了解或學習 AI / 資料科學的相關知識或技能,歡迎來TibaMe 👉 https://bit.ly/3o4N39e

下篇將與大家分享 資料前處理的3種工作與應用?

每週4則,每日5分鐘, 提拔我園丁陪你快速添補AI/資料科學知識與技能。

若您想了解更多AI/資料科學的小知識、及各產業的相關應用,歡迎訂閱TibaMe FB及部落格,或你有其他想了解的主題歡迎在下方留言讓我們知道唷!

緯育TibaMe FB

企業人才數位轉型FB

企業AI、數位人才or平台培訓方案請點選

參考資料

分享這篇文章:
0 留言
5

您也許會喜歡

發佈留言

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料