什麼是網路爬蟲?

以「維基百科」對於網路爬蟲的解釋:網路爬蟲(web crawler),是一種用來自動瀏覽全球資訊網的網路機器人。也就是說,網路爬蟲會「自動」幫你把你想要的頁面資訊抓下來;以便事後生成索引供使用者搜尋。網路爬蟲應用性很廣,這要取決於你想要什麼樣的資料,以及做什麼樣的運用!舉例來說:我想找某某大企業的工作,可是搜尋結果已經超過100筆。這時候,你只需要做的事情:寫好的網路爬蟲程式碼,一次把你想看的資料抓下來,再也不用一個一個點開看了。當然也不限於只找工作的領域,也可以應用到新聞或論壇,以了解輿情或風向、過往股價資訊、數據分析、機器學習等等。

學網路爬蟲之前,必須要先學會什麼程式語言嗎?基本上要會一種程式語言,如:Python、Java、C/C++等等,目前比較常聽到的是以Python最為常用的語言去執行網路爬蟲。

網路爬蟲有三件要記得的事:

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

「網路爬蟲」是自動存取網站,以及透過軟體程式取得資料。下面圖示是一個通用的爬蟲框架,讓大家更了解網路爬蟲的工作流程:

圖:網路爬蟲工作流程

爬蟲工作基本流程:

1、首先在網際網路中選出一部分網頁,以這些網頁的連結位址作為種子URL

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

3、將URL通過DNS解析

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

5、網頁下載器通過網站伺服器對網頁進行下載

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

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

8、過濾掉已經抓取的URL

9、對未進行抓取的URL繼續迴圈抓取,直至待抓取URL隊列為空。

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

這便是一個基本的通用網路爬蟲框架及其工作流程。

參考資料

作者:劉德泰

現職:
1111人力銀行數位策略顧問
17Sharing.org公益知識分享平台發起人
經歷:
緯育股份有限公司 總經理
資訊工業策進會數位教育研究所 主任
經濟部工業局「國家型數位學習與典藏產業推動計畫」-協同計畫主持人
經濟部工業局「國際化軟體人才暨產業技師培育計畫」-計畫主持人
中華民國數位學習學會常務監事

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。

回到頂端