想要成為「 AI / 資料 科學家」,想要自動化抓取所需的大量資料,一定要先學會「網路爬蟲」。
「網路爬蟲」是什麼?
它是一種用來自動瀏覽全球資訊網的網路機器人,又稱為網路機器人、網路蜘蛛…等。
網路爬蟲 (web crawler) 會「自動」幫你把你想要的頁面資訊抓下來,以便事後生成索引供使用者搜尋。網路爬蟲應用性很廣,取決於你想要哪些資料、如何運用。
舉例來說:當我想找某個大企業的職缺,但搜尋結果超過一百筆,這時候,只需要將寫好的「網路爬蟲程式碼」,一次把想看的資料抓取下來,就不需要一個個點開觀看。不只侷限於工作領域、也可以應用到新聞、論壇,來了解現在的風向、數據分析、機器學習…等。
而資料的收集,是現今相當重要的工作項目之一,學會爬蟲我們可以避免透過「人工」效率低又耗時的方式搜集網站資料,而學網路爬蟲之前,基本上要先會一種程式語言,像是:Python、Java、C/C++…等等。
目前Python是最常使用執行網路爬寵的語言,學會 Python 語法之後,也可以透過 Python 及抓取網頁資料的具BeautifulSoup 和 Selenium,來撰寫爬蟲程式自動化地蒐集網路上的最新資料。
【推薦學習】
結帳輸入優惠碼「BLOGONLY200」,「快速闖關 Python 語法世界,程式實作不頭痛」線上課程現折$200!
「網路爬蟲」3件需要注意的平衡禮貌:
- 記得看 Robots 協議和 ToS 禁止,並遵守該網站規則。
- 成為「禮貌爬蟲」:一般瀏覽網站,其實只有送出少量請求;而網路爬蟲可以同時大量連線送出請求,小型伺服器真的無法負荷,可能導致直接當機。這樣會讓你爬不了、他人也無法瀏覽網頁,可能錯過重要的資訊。
- 為什麼你要取這個資料?網路爬蟲雖然讓你方便取得資料,但不要因為方便,而隨意取得全部資料。你之所以要網路爬蟲,是因為你需要的是某些特定資料。
「網路爬蟲」是自動存取網站,及透過軟體程式取得資料。
下面這個是通用的爬蟲框架 (如圖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!
緯育TibaMe已經有10萬人次來學習AI/資料科學知識或技術,若你想進一步了解或學習 AI / 資料科學的相關知識或技能,歡迎來TibaMe 👉 https://bit.ly/3o4N39e
下篇將與大家分享 資料前處理的3種工作與應用?
每週4則,每日5分鐘, 提拔我園丁陪你快速添補AI/資料科學知識與技能。
若您想了解更多AI/資料科學的小知識、及各產業的相關應用,歡迎訂閱TibaMe FB及部落格,或你有其他想了解的主題歡迎在下方留言讓我們知道唷!
參考資料