網頁抓取程式會使用篩選器決定要處理何種資源,以及如何處理。當網頁抓取程式探索資源參照及資源本身時,網頁抓取程式會將篩選器套用在每個資源上。篩選器會列舉資源,並決定是否產生要存放在搜尋伺服器資料庫中的資源描述。
網頁抓取程式會檢查一個或多個起點 URL,套用篩選器,再套用篩選器至透過列舉 URL 所產生的 URL 上,等等。起點 URL 是在 filterrules.conf 檔案中定義。
每個列舉篩選器和產生篩選器會執行任何必要的初始化作業,並將比較測試套用至目前資源。每個測試的目標為允許或拒絕資源。篩選器也擁有關閉階段,在此階段將執行清除作業。
如果資源取得許可,則該資源通過篩選器繼續其歷程。網頁抓取程式最終會列舉該資源,以嘗試進一步探索其他資源。產生器也可能會為其建立資源描述。
若拒絕某個資源,則不會繼續處理該資源。對於被拒絕的資源,篩選器不會採取更進一步的動作。
這些作業不一定會被連結。有些資源會造成列舉,其他則造成 RD 產生。許多資源會同時造成列舉和 RD 產生。例如,如果資源是 FTP 目錄,則資源通常不會有為它產生的 RD。然而,網頁抓取程式會在 FTP 目錄中列舉個別的檔案。若 HTML 文件包含至其他文件的連結,該文件會造成產生 RD,也會導致任何已連結文件的列舉。
下列章節會說明篩選器程序:
列舉篩選器與產生篩選器的篩選程序中都擁有五個階段。
設定 – 執行初始化作業。在網頁抓取程式的有效期中只會發生一次。
中介資料 – 根據資源可用的中介資料篩選資源。在網路上擷取資源之前,對每個資源會執行一次中介資料篩選。表 12–1 列示常用中介資料類型的範例。
中介資料類型 |
描述 |
範例 |
---|---|---|
完整的 URL |
資源的位置 |
http://home.siroe.com/ |
通訊協定 |
URL 的存取部分 |
http、ftp、file |
主機 |
URL 的位址部分 |
www.siroe.com |
IP 位址 |
主機的數字版本 |
198.95.249.6 |
路徑 |
URL 的路徑部分 |
/index.html |
深度 |
從起點 URL 開始的連結數 |
5 |
資料 – 根據其資料篩選資源。在網路上擷取資料後,會篩選每個資源的資料一次。可用於篩選的資料包括:
content-type
content-length
content-encoding
content-charset
last-modified
expires
列舉 – 列舉目前資源,以決定該資源是否指向其他待檢查的資源。
產生 – 為資源產生資源描述 (Resource Description, RD),並將其儲存至搜尋伺服器資料庫中。
關閉 – 執行任何必須的終止作業。在網頁抓取程式有效期中,此程序會發生一次。
filter.conf 檔案包含列舉篩選器與產生篩選器的定義。這個檔案可以包含多個用於列舉與產生的篩選器。網頁抓取程式所使用的篩選器是由 robot.conf 檔案中的 enumeration-filter 和 generation-filter 特性指定。
篩選器定義擁有一個定義良好的結構:標題、內文與結尾。標題會識別篩選器的開始並公佈其名稱,例如:
<Filter name="myFilter"> |
內文包含一系列的篩選器指令,這些指令可定義篩選器在設定、測試、列舉或產生和關閉期間的行為。每條指令會指定一個功能,且若適用,還會為功能指定特性。
結尾標記符為 </Filter>。
範例 12–1 顯示名為 enumeration1 的篩選器。
<Filter name="enumeration1> Setup fn=filterrules-setup config=./config/filterrules.conf # 處理規則 MetaData fn=filterrules-process # 再次按類型和處理規則篩選 Data fn=assign-source dst=type src=content-type Data fn=filterrules-process # 僅在 HTML 上列舉 Enumerate enable=true fn=enumerate-urls max=1024 type=text/html # 清除 Shutdown fn=filterrules-shutdown </Filter> |
篩選器指令使用網頁抓取程式應用程式功能 (Robot Application Function, RAF) 執行作業。它們的使用方式和執行流程與 Sun Java System Web Server 的 obj.conf 檔案中 NSAP 指令和伺服器應用程式功能 (Server Application Function, SAF) 類似。類似 NSAPI 與 SAF,資料的儲存與傳送使用特性區段 (亦稱為 pblocks)。
六個網頁抓取程式指令,或 RAF 類別,與資源篩選程序中列示的篩選階段與作業對應:
設定
中介資料
資料
列舉
產生
關閉
每個指令擁有自己的網頁抓取程式應用程式功能。例如,將篩選功能與「中介資料」和「資料」指令一起使用,將列舉功能與「列舉」指令一起使用,將產生功能與「產生」指令一起使用,等等。
內建的網頁抓取程式應用程式功能和撰寫自訂網頁抓取程式應用程式功能的指示皆會在「Sun Java System Portal Server 7.1 Developer's Guide」中有所解釋。
在大部分的情況下,您可以使用管理主控台建立大部分基於網站定義的篩選器。隨後您可以修改 filter.conf 與 filterrules.conf 檔案以做出進一步想要的變更。這些檔案位在目錄 /var/opt/SUNWportal/searchservers/searchserverid/config 中。
若要建立一組更複雜的特性,請編輯網頁抓取程式使用的配置檔案。
當您撰寫或修改篩選器時,請注意
執行指令的順序,尤其是每個階段的可用資訊。
filterrules.conf 中的篩選器規則。
您也可以執行以下動作:
修改 robot.conf 檔案中的特性。
修改 filter.conf 檔案中的網頁抓取程式應用程式功能。
建立您自己的網頁抓取程式應用程式功能。
如需詳細資訊,請參閱「Sun Java System Portal Server 7.1 Developer's Guide」