整個的寬度優先爬蟲過程就是從一系列的種子節點開始,把這些網頁中(種子結點網頁)的“子節點” (也就是超鏈接)提取出來,放入隊列中依次進行抓取。被處理過的鏈接需要放入一張表(通常稱 為 Visited 表)中。每次新處理一個鏈接之前,需要查看這個鏈接是否已經存在於 Visited 表 中。如果存在,證明鏈接已經處理過,跳過,不做處理,否則進行下一步處理。實際的過 程如圖 1.5 所示。
初始的 URL 地址是爬蟲系統中提供的種子 URL(一般在系統的配置文件中指定)。當解析這些種子 URL 所表示的網頁時,會產生新的 URL(比如從頁面中的<a href= “http://www.admin.com”中提取出 http://www.admin.com 這個鏈接)。然後,進行以下工作:
(1) 把解析出的鏈接和 Visited 表中的鏈接進行比較,若 Visited 表中不存在此鏈接,表示其未被訪問過。
(2) 把鏈接放入 TODO 表(TODO表用於存放未訪問的鏈接URL)中。
(3) 處理完畢後,再次從 TODO 表中得一條鏈接,直接放入 Visited 表中。
(4) 針對這個鏈接所表示的網頁,繼續上述過程。如此循環往復。
表 1.3 顯示了對圖 1.3 所示的頁面的爬取過程。