大部分的網頁抓取程式應用程式功能 (Robot Application Function, RAF) 需要資訊來源,並會產生移至目標的資料。來源會在網頁抓取程式之中定義,不一定要與網頁抓取程式最終產生的資源描述欄相關。在另一方面,目標通常是資源描述中的欄位名稱 (如資源描述伺服器模式所定義)。
下列章節會說明篩選程序的不同階段,以及這些階段的可用來源。
篩選器會在「設定」階段中設定,但不會取得資源 URL 或內容的相關資訊。
在「中介資料」階段,網頁抓取程式會遇到資源的 URL,但還未下載資源的內容。因此可提供關於 URL 以及源自其他來源 (如 filter.conf 檔案) 的資料之相關資訊。然而在此階段中,不提供關於資源內容的資訊。
表 12–2 在中介資料階段中可用於 RAF 的來源
來源 |
說明 |
範例 |
---|---|---|
csid |
目錄伺服器 ID |
x-catalog//budgie.siroe.com:8086/alexandria |
深度 |
從起點移動的連結數 |
10 |
列舉篩選器 |
列舉篩選器名稱 |
enumeration1 |
產生篩選器 |
產生篩選器名稱 |
generation1 |
主機 |
URL 的主機部分 |
home.siroe.com |
IP |
主機的數值版本 |
198.95.249.6 |
協定 |
URL 的存取部分 |
http, https, ftp, file |
路徑 |
URL 的路徑部分 |
/, /index.html, /documents/listing.html |
URL |
完整的 URL |
http://developer.siroe.com/docs/manuals/ |
在「資料」階段,網頁抓取程式已下載該 URL 處的資源內容,並可存取與該內容相關的資料,例如描述和作者。
若資源是 HTML 檔案,則網頁抓取程式會剖析 HTML 標頭中的 <META> 標記。因此,可以在「資料」階段中取得任何包含於 <META> 標記的資料。
在「資料」階段中,除了那些在「中介資料」階段可使用的來源外,以下來源可用於 RAF。
表 12–3 在資料階段中可用於 RAF 的來源
來源 |
說明 |
範例 |
---|---|---|
content-charset |
用於資源的字元集 | |
content-encoding |
編碼的任何形式 | |
content-length |
以位元組為單位的資源大小 | |
content-type |
資源的 MIME 類型 |
text/html, image/jpeg |
expires |
資源到期的日期 | |
last-modified |
資源上次修改的日期 | |
<META> 標記中的資料 |
於 HTML 資源標頭中的 <META> 標記中所提供的任何資料。 |
作者、描述、關鍵字 |
擷取資源時,會傳回所有源自 HTTP 回應標頭的來源 (<META> 標記中的資料除外)。
在「列舉」與「產生」階段中,可用資料來源與「資料」階段的可用資料來源相同。如需詳細資訊,請參閱表 12–3。
在「關閉」階段,篩選器會完成其篩選作業並關閉。雖然為這個階段撰寫的功能可以使用那些與可用於「資料」階段相同的資料來源,但關閉功能一般會將其作業限制在網頁抓取程式關閉和清除作業。
每種功能皆有一個 enable 特性。值可為 true、false、on 或 off。管理主控台會使用這些參數以開啟或關閉特定指令。
下列範例會啟用 text/html 的列舉並停用 text/plain 的列舉:
# 僅在 HTML 上執行列舉 Enumerate enable=true fn=enumerate-urls max=1024 type=text/html Enumerate enable=false fn=enumerate-urls-from-text max=1024 type=text/plain |
新增 enable=false 特性或 enable=off 特性具有將該行寫為註釋相同的效力。使用這些特性的原因是管理主控台不會寫入註釋。