• 沒有找到結果。

第三章 系統設計

3.1 系統設計概念

指定要抓取的 Facebook 粉絲頁,按下執行按鈕,系統便會連結至 Facebook,開始自動 抓取 Facebook 粉絲頁上的塗鴉牆訊息,再來系統會針對抓取到的塗鴉牆訊息做資料剖 析,最後將剖析出來的結果全部存入到資料庫當中,系統主要的目的就是將 Facebook 粉絲頁塗鴉牆上的訊息資料整理好之後,把它們通通搬入到使用者的資料庫裡,讓使用 者可以藉由這些資料來進一步做出研究分析。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

圖 3.1 本研究的系統設計的基本概念

本論文針對 Facebook 粉絲頁塗鴉牆上的訊息,將其內容主要區分成三大類,分別 為文章訊息、留言訊息、按讚訊息,在 Facebook 上,每一則文章、留言以及每一位用

Facebook

Data Crawler System

剖析結果 粉絲頁

SQL Server

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

15

戶都具有一個唯一 ID 值,且用戶不能對同一則文章或留言重覆按讚,每一筆文章訊息 記錄可以對應到多筆留言訊息紀錄或按讚訊息記錄,其關聯如圖 3.2 所示:

圖 3.2 文章訊息、留言訊息、按讚訊息關聯圖

在抓取粉絲頁資料時,系統會記錄目前所抓取的粉絲頁,而在 Facebook 上取得的 資料為 JSON 資料,JSON 為表示物件的一種格式,主要的概念就是以大括號來表示物 件,以中括號來表示陣列,而物件是以 key-value 的方式儲存,也就是指一個鍵值(key)

對應到一個值(value),每一組 key-value 以逗號作區隔,陣列則是可以存放值的地方,

值跟值之間以逗號作區隔,值可以為文字、數字、物件、陣列、布林或是 null6,我們將 取得的 JSON 資料存入至資料庫,並將連結資料儲存起來,以便作為下一次抓取的 seed,

而系統會將儲存的 JSON 資料再進一步剖析成三大類訊息存放,由於臉書上的粉絲頁 ID、發文者 ID、按讚者 ID、留言者 ID 的長度都會超過 4 個 Bytes,所以我們以 bigint 資料型態來儲存,而文章訊息 ID 和留言訊息 ID 則是以 ID 串聯的方式呈現,文章訊息

6 參考資料來源:http://www.json.org/

Fanpagename varchar(50) 粉絲頁的名稱

state char(8) 抓取狀態 time datetime 開始抓取時間 updatetime datetime 開始更新時間

表 3.2 抓取到的 JSON 資料

欄位名稱 型態 記錄內容

FanpageID bigint 粉絲頁的 ID

jsondata text 抓取到的 JSON 資料 currentTime datetime 儲存到資料庫時間

表 3.3 seed 連結資料

欄位名稱 型態 記錄內容

FanpageID bigint 粉絲頁的 ID

url text 連結資料

currentTime datetime 儲存到資料庫時間

created_time datetime 發文時間 updated_time datetime 更新文章時間

currentTime datetime 儲存到資料庫時間

表 3.5 留言訊息記錄內容

欄位名稱 型態 記錄內容

FanpageID bigint 留言訊息所屬的粉絲頁 ID postid varchar(50) 留言訊息所屬的文章訊息 ID commentsid varchar(50) 留言訊息 ID

commentsfromid bigint 留言者 ID commentsfromname varchar(50) 留言者名稱

commentsmessage text 留言訊息內容 commentscreated_time datetime 留言時間

commentslike_count int 留言被按讚次數 currentTime datetime 儲存到資料庫時間

currentTime datetime 儲存到資料庫時間

相關文件