我們大致把爬蟲分為兩類:一類是用於搜索引擎的搜索爬蟲,抓取目標是整個互聯網;一類則是各種定向爬蟲,抓取目標是所有網站中的一個特定子集,甚至就是某一個網站。
聚焦爬蟲的工作流程較為復雜,需要根據一定的網頁分析算法過濾與主題無關的鏈接,保留有用的鏈接並將其放入等待抓取的URL隊列。然后,它將根據一定的搜索策略從隊列中選擇下一步要抓取的網頁URL,並重復上述過程,直到達到系統的某一條件時停止。另外,所有被爬蟲抓取的網頁將會被系統存貯,進行一定的分析、過濾,並建立索引,以便之后的查詢和檢索;對於聚焦爬蟲來說,這一過程所得到的分析結果還可能對以后的抓取過程給出反饋和指導。
相對於通用網絡爬蟲,聚焦爬蟲還需要解決三個主要問題:
對抓取目標的描述或定義;
對網頁或數據的分析與過濾;
對URL的搜索策略。
抓取目標的描述和定義是決定網頁分析算法與URL搜索策略如何制訂的基礎。而網頁分析算法和候選URL排序算法是決定搜索引擎所提供的服務形式和爬蟲網頁抓取行為的關鍵所在。這兩個部分的算法又是緊密相關的。
基於目標網頁特征的爬蟲所抓取、存儲並索引的對象一般為網站或網頁。具體的方法根據種子樣本的獲取方式可以分為:
(1)預先給定的初始抓取種子樣本;
(2)預先給定的網頁分類目錄和與分類目錄對應的種子樣本,如Yahoo!分類結構等;
(3)通過用戶行為確定的抓取目標樣例。其中,網頁特征可以是網頁的內容特征,也可以是網頁的鏈接結構特征,等等。
解析網站內容,就要提到robots.txt。robots.txt是一個協議,而不是一個命令。robots.txt是搜索引擎中訪問網站的時候要查看的第一個文件。robots.txt文件告訴spider在服務器上什么文件是可以被查看的。當一個搜索蜘蛛訪問一個站點時,它會首先檢查該站點根目錄下是否存在robots.txt,如果存在,搜索機器人就會按照該文件中的內容來確定訪問的范圍;如果該文件不存在,所有的搜索蜘蛛將能夠訪問網站上所有沒有被口令保護的頁面。
下面大概說一下我們這個項目的采集工作。
采集的目的就是把對方網站上網頁中的某塊文字或者圖片等資源下載到自己的數據庫或其他的存儲形式,這個過程需要做下面幾個工作:下載網頁,解析網頁,修正結果,存儲數據。如果數據符合自己要求,修正結果這步可省略。把配置過程分解為這幾個步驟。
配置主要分四個步驟:
第一步網頁爬蟲,配置網頁爬蟲規則,用來把需要采集的網頁批量保存到本地。這套規則成為一個網頁爬蟲。
第二步網頁采集,設置采集規則,找一個網頁為模板例子,設置要采集的數據塊。其他符合此模板的網頁將被按照這個規則解析。這套規則成為一個網頁采集。
第三步采集任務,配置采集任務,對網頁爬蟲和網頁采集進行組合,一個網頁爬蟲可以對應多個網頁采集,組合后保存為一個采集任務。這個步驟中可以對結果的修正和存儲(既輸出)進行配置
第四步任務發布,對采集任務進行發布,可以發布到指定服務器的某個采集隊列中。采集到的資源為下一個項目組同學所用。