NU
權限設定 訂閱 上傳檔案 新增目錄 新增連結 新增文章 編輯本頁 分享
上傳檔案!
請將檔案拖曳至此區域 (一般瀏覽器上傳, 單筆檔案大小限制128MB, 若要上傳更大檔案請改用 NUBraim 瀏覽器) 下載 NUBraim
Record 格式

我們實驗室習慣使用最簡單的格式當作一個 db file。這個 db file 是以明文欄位的方式儲存的。若有必要時,也可以對欄位內容額外進行壓縮。

一個 db file 或是 record 裡面通常會有許多欄位,這邊提供參考的欄位命名。


@    // record delimiter
@U: // URL
@H: // URL 的 Hostname 取 MD5 後的 4bytes (轉成 ASCII 為 8bytes)
@F: // parent url
@y: // anchor text of parent url
@l: // crawling level
@P: // record (page) id
@L: // 文件的語言;文件採用的編碼
@s: // page size
@t: // 文件最後被修改的時間,或被抓取的時間
@T: // page title
@C: // category
@D: // description
@k: // page keyword (from meta tag)
@d: // page description (from meta tag)
@B: // page body
@cs: // page signature(title + body 的文字做 md5)
@ps: // text size after removing html tag
@et: // count of highlight tags
@tt: // count of all tags
@lt: // count of link tags
@as: // anchor text size of link tags (ex: anchor text
@il: // count of image tags
@dl: // count of downward link
@sl: // count of link with different host(跟 @U: 不同的 host)
@xl: // count of link with the same host(跟 @U: 相同的 host) (sl + xl = lt)
@S: // site score or @O:
@r: // page score or @E:
@R: // reference count
@A: // [Alias name count \t Alias Names\n]

db/record file 裡面的每筆資料都會有欄位,每個 @XX: 都表示一個欄位。

例如,以一個存放網頁的 database 為例子,它的內容會是這樣子:

@
@U:http://a.b.c
@H:12345552
@t:20080202
@T:hello world
@k:
@B:fsdfasdfdfasdfsdfasdfasdf
@
@U:http://news.yahoo.com.tw/index.php
@H:12345556
@t:20080202
@T:Hello World
@k:
@B:fdfdsfdsfsdHHKB Pro...




@
@U:http://www.taipeitimes.com/News/biz?pubdate=2005-12-17
@H:98447662@t:20070212
@T:Taipei Times - Business
@k:
@B:blahblah...
note that content may contains binary data!!blahblahblahblah

這個 db file 包含了三筆 data,是給 web spider 存放 crawl 下來的網頁。稍微觀察後可以看出來,這個 db file 是以下面這三種符號來區分 records、fields:

  • @\n@U: 稱為 record delimiter。
  • \n@ 稱為 field delimiter。
  • @[^:]+: (regexp表示) 稱為 field pattern。

Parse 程式就是用 strstr(3)memmem(3) 去找這些 pattern。因為 record file 被建立時,已經處理過,不會有同樣 pattern 的字串出現在資料內容中。

樣本 record 檔案。記得解壓縮。