• 沒有找到結果。

設計與實作一個臉書粉絲頁資料抓取器 - 政大學術集成

N/A
N/A
Protected

Academic year: 2021

Share "設計與實作一個臉書粉絲頁資料抓取器 - 政大學術集成"

Copied!
90
0
0

加載中.... (立即查看全文)

全文

(1)國立政治大學資訊科學系 Department of Computer Science National Chengchi University 碩士論文 Master’s Thesis. 立. 政 治 大. ‧ 國. 學 ‧. 設計與實作一個臉書粉絲頁資料抓取器. Nat. n. al. er. io. sit. y. Design and Implementation of a Facebook Fan Page Data Crawler. Ch. engchi. i n U. v. 研 究 生:鄭博元 指導教授:徐國偉. 中華民國一百零四年十月 October 2015.

(2) 設計與實作一個臉書粉絲頁資料抓取器 Design and Implementation of a Facebook Fan Page Data Crawler. 研 究 生:鄭博元. Student:Po-Yuan Cheng. 指導教授:徐國偉. Advisor:Kuo-Wei Hsu. 資訊科學系 碩士論文. 學 ‧. ‧ 國. 立. 政 治 大 國立政治大學. y. Nat. n. er. io. sit. A Thesis submitted to Department of Computer Science al v National Chengchi University i n Ch i URequirements in partial fulfillment e n g cofhthe for the degree of Master in Computer Science. 中華民國一百零四年十月 October 2015.

(3) 摘要. 近年來隨著社群網路服務的盛行,臉書已成為現代人最主要的社交工 具,許多名人及公司企業也都搶搭著這股風潮,紛紛在臉書上建立起粉絲 頁來和粉絲們互動,而在虛擬世界和現實社會之間,兩者所互相造成的影 響帶動出許多新興研究議題,透過資訊技術收集虛擬世界裡的資料,能幫. 政 治 大 助人文學者與社會科學家探索出數位科技與人文社會間的新現象。 立. ‧ 國. 學. 本研究針對臉書上的粉絲頁,設計建構出一套臉書資料抓取系統,以協. ‧. 助學者研究分析粉絲頁的動態消息資料,本系統可幫助研究者搜尋出相關. sit. y. Nat. 粉絲頁,並依照按讚次數排列呈現,協助挑選受歡迎的粉絲頁;讓研究者. er. io. 能抓取特定的粉絲頁資料,抓取到的資料經過解析後分為文章訊息、留言. n. a. v. l C 訊息、按讚訊息,並將結果儲存至資料庫;針對已抓取的粉絲頁,自動定 ni 時更新至最新資料。. hengchi U. 關鍵字:臉書、網路爬蟲、平行處理. I.

(4) Abstract. With the popularity of social networking services in recent years, Facebook has become a major social tool for people. Many celebrities and companies have also gone with the tide to and established a fan page on Facebook to interact with fans. The mutual influence of the virtual world and the real world drives many emerging research agenda. Using information technology to collect data in. 政 治 大. the virtual world can help the humanities scholars and social scientists to explore. 立. new phenomena between digital technology and humanities community.. ‧ 國. 學. In this thesis, we focus on Facebook fan page data. We design and construct a Facebook fan page crawler to help scholars get data for analysis. The crawler. ‧. can help researchers find the relevant fan pages along with the numbers of. y. Nat. sit. thumbs up and it can help researchers select fan pages. The crawler can help. a. er. io. researchers to get the fan page data which they want by extracting post messages,. n. v l messages from the data comment messages, and like n i and then storing the results Ch. U i e h n c g into the database. The crawler also can set update timer to help researchers get the latest information.. Keywords: Facebook、Web Crawler、Parallel Processing. II.

(5) 致謝. 在就讀研究所的這段時間裡,首先要感謝的就是我的指導教授 徐國偉老 師,感謝老師的耐心教導與鼓勵,在研究過程中,老師總是給予我許多寶 貴的意見以及指引我正確的研究方向,讓我學習到許多作研究的方法,帶 給我不少啟發。另外,也要感謝兩位口試委員 陳恭老師與 黃信貿老師對. 政 治 大 於本篇論文所提出的寶貴建議,使得論文的內容能夠變得更加完整,讓我 立. ‧ 國. 學. 得到更多收穫。. ‧. 接著我要感謝實驗室裡的所有成員以及所有幫助過我的同學們,使我在. sit. y. Nat. 研究所的求學過程中能夠順利解決遭遇到的各式各樣的問題,感謝實驗室. n. al. er. io. 裡的所有成員在這些年來的包容以及協助,讓我能夠在愉悅的氣氛下學習 和研究。. Ch. engchi. i n U. v. 最後我要感謝我的家人,感謝你們一直以來對我的關心與照顧,在我求 學過程中總是在背後給予我支持與鼓勵,讓我能夠專注在學校課業與研究 上,完成研究所的學業。. 鄭博元 2015 年 10 月. III.

(6) 目錄 第一章 1.1. 導論 ................................................................................................................... 1 研究背景 ............................................................................................................ 1. 1.1.1 Facebook 的沿革 .................................................................................... 1 1.1.2 Facebook 粉絲頁 .................................................................................... 3 1.2 研究動機和目的 ................................................................................................ 4 1.3 論文架構 ............................................................................................................ 5 第二章. 文獻探討 ............................................................................................................ 6. 2.1 2.2 2.3. 數位人文 ............................................................................................................ 6 社群網站相關研究 ............................................................................................ 6 網路爬蟲相關研究 ............................................................................................ 8. 立. Parallel Crawler .................................................................................... 10. ‧ 國. 學. 2.3.1. 政 治 大. sit. y. Nat. n. al. er. 搜尋資料模組 ...................................................................................... 24 資料抓取模組 ...................................................................................... 25 資料剖析模組 ...................................................................................... 26 資料更新模組 ...................................................................................... 28 內容呈現模組 ...................................................................................... 30. io. 3.3.1 3.3.2 3.3.3 3.3.4 3.3.5. ‧. 2.3.2 Focused Web Crawler............................................................................ 11 第三章 系統設計 .......................................................................................................... 13 3.1 系統設計概念 .................................................................................................. 13 3.2 系統架構設計 .................................................................................................. 18 3.3 系統模組設計 .................................................................................................. 23. Ch. engchi. i n U. v. 第四章. 系統實作 .......................................................................................................... 31. 4.1. Facebook API ................................................................................................... 31. 4.2 4.3 4.4 4.5. 第五章 5.1 5.2. 4.1.1 Graph API ............................................................................................. 31 Facebook SDK for C#....................................................................................... 35 粉絲頁塗鴉牆資料結構................................................................................... 37 平行聚焦抓取及剖析 ...................................................................................... 37 系統實作結果 .................................................................................................. 39 4.5.1 操作執行介面 ...................................................................................... 39 4.5.2 資料顯示介面 ...................................................................................... 44 實驗 ................................................................................................................. 47 系統測試環境 .................................................................................................. 47 非平行運算與平行運算結果比較 ................................................................... 47 IV.

(7) 5.3. 測試抓取結果 .................................................................................................. 48 5.3.1 5.3.2 5.3.3 5.3.4 5.3.5. 遊戲類粉絲專頁................................................................................... 49 政治人物粉絲專頁 ............................................................................... 55 社會議題粉絲專頁 ............................................................................... 60 速食店粉絲專頁................................................................................... 64 網路論壇粉絲專頁 ............................................................................... 69. 5.4 結果整理 .......................................................................................................... 73 第六章 結論與未來展望 .............................................................................................. 75 6.1 結論 ................................................................................................................. 75 6.2 未來展望 .......................................................................................................... 76 參考文獻 ............................................................................................................................. 77. 立. 政 治 大. ‧. ‧ 國. 學. n. er. io. sit. y. Nat. al. Ch. engchi. V. i n U. v.

(8) 圖目錄 圖 2.1 Typical high-level architecture of a Web crawler [11] ................................................ 10 圖 3.1 本研究的系統設計的基本概念 ................................................................................ 14 圖 3.2 文章訊息、留言訊息、按讚訊息關聯圖 ................................................................ 15 圖 3.3 本研究的系統的三層架構 ....................................................................................... 19 圖 3.4 本研究的系統的詳細架構圖.................................................................................... 20 圖 3.5 使用者介面層中對於資料的呈現方式 .................................................................... 22 圖 3.6 搜尋資料模組的工作流程 ....................................................................................... 25 圖 3.7 資料抓取模組的工作流程 ....................................................................................... 26. 政 治 大. 圖 3.8 資料剖析模組的工作流程 ....................................................................................... 27 圖 3.9 資料更新模組的工作流程 ....................................................................................... 29 圖 3.10 內容呈現模組的工作流程...................................................................................... 30 圖 4.1 透過 Graph API 取得 node 資訊 ............................................................................... 32. 立. ‧ 國. 學. ‧. 圖 4.2 透過 Graph API 取得 edge 資訊 ............................................................................... 32 圖 4.3 取得的資料格式 ....................................................................................................... 33 圖 4.4 透過 Graph API 建立 node ....................................................................................... 33 圖 4.5 透過 Graph API 建立 edge ........................................................................................ 33 圖 4.6 透過 Graph API 在塗鴉牆上發佈訊息 ..................................................................... 34. sit. y. Nat. al. er. io. 圖 4.7 透過 Graph API 更新資料 ........................................................................................ 34. n. 圖 4.8 透過 Graph API 刪除資料 ........................................................................................ 34 圖 4.9 透過 Graph API 搜尋資料 ........................................................................................ 35 圖 4.10 申請到的 App ID 及 App Secret ............................................................................. 36 圖 4.11 取得 Access Token 及使用 FacebookClient 類別功能 ............................................ 36. Ch. engchi. i n U. v. 圖 4.12 塗鴉牆的 JSON 格式的資料結構 .......................................................................... 37 圖 4.13 平行處理剖析任務 ................................................................................................. 38 圖 4.14 操作執行介面 ......................................................................................................... 39 圖 4.15 資料抓取模組 ......................................................................................................... 40 圖 4.16 資料更新模組 ......................................................................................................... 40 圖 4.17 搜尋資料模組 ......................................................................................................... 41 圖 4.18 抓取到的 JSON 資料-以政大為關鍵字搜尋粉絲頁............................................ 42 圖 4.19 抓取到的 JSON 資料-連結至政大研究生學會粉絲頁 ........................................ 43 圖 4.20 內容呈現模組-目前抓取資料紀錄 ......................................................................... 43 圖 4.21 資料剖析模組-文章訊息 ........................................................................................ 44 圖 4.22 內容呈現模組-某粉絲頁三類訊息資料 ................................................................. 45 VI.

(9) 圖 4.23 內容呈現模組-某則貼文三類訊息資料 ................................................................. 46 圖 5.1 文章訊息時序分布圖-Garena《英雄聯盟 LOL》 ................................................ 50 圖 5.2 按讚訊息時序分布圖-Garena《英雄聯盟 LOL》 ................................................ 51 圖 5.3 留言訊息時序分布圖-Garena《英雄聯盟 LOL》 ................................................ 51 圖 5.4 文章訊息時序分布圖-爐石戰記 ............................................................................ 52 圖 5.5 按讚訊息時序分布圖-爐石戰記 ............................................................................ 52 圖 5.6 留言訊息時序分布圖-爐石戰記 ............................................................................ 53 圖 5.7 文章訊息時序分布圖-暴雪英霸 ............................................................................ 53 圖 5.8 按讚訊息時序分布圖-暴雪英霸 ............................................................................ 54 圖 5.9 留言訊息時序分布圖-暴雪英霸 ............................................................................ 54 圖 5.10 文章訊息時序分布圖-柯文哲 .............................................................................. 56. 治 政 圖 5.12 留言訊息時序分布圖-柯文哲 .............................................................................. 57 大 立 圖 5.13 文章訊息時序分布圖-連勝文 .............................................................................. 57 圖 5.11 按讚訊息時序分布圖-柯文哲 .............................................................................. 56. ‧ 國. 學. 圖 5.14 按讚訊息時序分布圖-連勝文 .............................................................................. 58 圖 5.15 留言訊息時序分布圖-連勝文 .............................................................................. 58 圖 5.16 按讚訊息時序分布圖(2014 年)-柯文哲.......................................................... 59. ‧. 圖 5.17 按讚訊息時序分布圖(2014 年)-連勝文.......................................................... 59 圖 5.18 文章訊息時序分布圖-Sunflower Movement 太陽花學運................................... 61 圖 5.19 按讚訊息時序分布圖-Sunflower Movement 太陽花學運................................... 61. sit. y. Nat. n. al. er. io. 圖 5.20 留言訊息時序分布圖-Sunflower Movement 太陽花學運................................... 62 圖 5.21 文章訊息時序分布圖-我是人,我反核!........................................................... 62 圖 5.22 按讚訊息時序分布圖-我是人,我反核!........................................................... 63 圖 5.23 留言訊息時序分布圖-我是人,我反核!........................................................... 63 圖 5.24 文章訊息時序分布圖-麥當勞 .............................................................................. 65. Ch. engchi. i n U. v. 圖 5.25 按讚訊息時序分布圖-麥當勞 .............................................................................. 65 圖 5.26 留言訊息時序分布圖-麥當勞 .............................................................................. 66 圖 5.27 文章訊息時序分布圖-KFC .................................................................................. 66 圖 5.28 按讚訊息時序分布圖-KFC .................................................................................. 67 圖 5.29 留言訊息時序分布圖-KFC .................................................................................. 67 圖 5.30 文章訊息時序分布圖-MOS Burger 摩斯漢堡「癮迷」俱樂部 ......................... 68 圖 5.31 按讚訊息時序分布圖-MOS Burger 摩斯漢堡「癮迷」俱樂部 ......................... 68 圖 5.32 留言訊息時序分布圖-MOS Burger 摩斯漢堡「癮迷」俱樂部 ......................... 69 圖 5.33 文章訊息時序分布圖-批踢踢實業坊(Ptt.cc) ....................................................... 70 圖 5.34 按讚訊息時序分布圖-批踢踢實業坊(Ptt.cc) ....................................................... 71 圖 5.35 留言訊息時序分布圖-批踢踢實業坊(Ptt.cc) ....................................................... 71 圖 5.36 文章訊息時序分布圖-巴哈姆特電玩資訊站 ....................................................... 72 VII.

(10) 圖 5.37 按讚訊息時序分布圖-巴哈姆特電玩資訊站 ....................................................... 72 圖 5.38 留言訊息時序分布圖-巴哈姆特電玩資訊站 ....................................................... 73. 立. 政 治 大. ‧. ‧ 國. 學. n. er. io. sit. y. Nat. al. Ch. engchi. VIII. i n U. v.

(11) 表目錄 表 1.1 粉絲頁與社團的區別 ................................................................................................. 4 表 2.1 熱門的 open source 的網路爬蟲................................................................................. 9 表 3.1 目前所抓的粉絲頁 ................................................................................................... 16 表 3.2 抓取到的 JSON 資料................................................................................................ 16 表 3.3 seed 連結資料........................................................................................................... 16 表 3.4 文章訊息記錄內容 ................................................................................................... 17 表 3.5 留言訊息記錄內容 ................................................................................................... 17 表 3.6 按讚訊息記錄內容 ................................................................................................... 18. 政 治 大. 表 5.1 抓取效能比較 ........................................................................................................... 47 表 5.2 不同的塗鴉牆筆數測試結果.................................................................................... 48 表 5.3 粉絲頁類型及數量 ................................................................................................... 49 表 5.4 遊戲類粉絲專頁資料紀錄 ....................................................................................... 49. 立. ‧ 國. 學. ‧. 表 5.5 政治人物粉絲專頁資料紀錄.................................................................................... 55 表 5.6 社會議題粉絲專頁資料紀錄.................................................................................... 60 表 5.7 速食店粉絲專頁資料紀錄 ....................................................................................... 64 表 5.8 網路論壇粉絲專頁資料紀錄.................................................................................... 70 表 5.9 系統測試抓取數值 ................................................................................................... 74. n. er. io. sit. y. Nat. al. Ch. engchi. IX. i n U. v.

(12) 第一章. 導論. 1.1 研究背景 隨著資訊網路的蓬勃發展,上網已變成人們生活中不可或缺的休閒活動,這也帶動社群 網站的興起,人們在社群網站上發表文章或是放上相片來記錄在生活中所發生的點點滴. 政 治 大. 滴,也藉此和朋友們互相交流、分享,隨時掌握彼此的消息,開啟一種新穎的人際互動. 立. 方式,為資訊的交流與分享提供新的途徑,而在眾多的社群網站當中,Facebook 便是一. ‧ 國. 學. 個知名的代表例子。. ‧. 1.1.1. Facebook 的沿革. y. Nat. sit. Facebook 是現代人不可不用的社群軟體,其命名來源是取自於美國學校常使用的傳統紙. n. al. er. io. 本通訊錄,它在裡面會提供學校社群所有成員的資訊,主要是發放給新入學的學生和新. i n U. v. 入職的教職員,協助大家認識學校內其他成員。Facebook 的主要創辦人是馬克·祖克柏. Ch. engchi. (Mark Elliot Zuckerberg),他在就讀哈佛大學期間開發出 Facebook 網站程式,最初在 2004 年時,只有哈佛學院的學生能註冊 Facebook,而在其中有超過一半以上的學生參與註冊 成為使用者,在接下來的幾個月內,Facebook 便開放註冊給大部分美國和加拿大境內的 大學師生使用,之後再擴展到只要是具有大學電子信箱的人都可以註冊成為 Facebook 使用者,直到 2006 年,Facebook 正式開放給所有年滿 13 歲且持有一個有效電子信箱的 人使用1。. 1. 參考資料來源:http://zh.wikipedia.org/wiki/Facebook 1.

(13) Facebook 這股熱潮也逐漸延燒到台灣地區,在 2014 年 6 月,Facebook 委託模範市 場研究顧問進行的「Facebook 台灣消費者線上行為調查」指出2,對台灣的 Facebook 使 用者來說,Facebook 是最受歡迎的網路平台,使用情形比 Yahoo!、YouTube、Line 和 Google+等知名網路平台還要更加普遍。另外,Facebook 也是台灣人發掘產品、電影、 遊戲與應用程式的地方,有 42%的人在 Facebook 上發現新的品牌、產品或服務;有超 過 50%的人,在 Facebook 上發現新的遊戲、書籍、活動或是電影;有 29%的人在 Facebook 上找到新的手機應用程式。. 政 治 大. Facebook 帶來新穎的人際互動方式,成功的吸引出許多人前來註冊使用,其主要的 功能包含下列幾項:. 立. 塗鴉牆(The Wall) :塗鴉牆就是用戶檔案頁上的留言板,與留言板不同的是,塗鴉. 學. ‧ 國. 1.. 牆的內容會被同步到各個朋友的首頁,因此可以在自己的塗鴉牆上發表一些最新狀. 狀態(Status):讓用戶向他們的朋友和 Facebook 社群顯示他們現在在哪裡、做什. y. Nat. 2.. ‧. 態,也可以設定為不同步給所有好友。. er. io. 著回應你的狀態。. sit. 麼事情、甚至是心情與表情符號,然後讓好友看到這些狀態,並了解你的狀態,接. al. n. v i n Ch 訊息(Messages):可以透過私密訊息發送給目標用戶的訊息匣,就像電子信件, engchi U. 3.. 只有收信人和發信人可以看到。 4.. 讚(Like):利用「讚」按鈕讓網友們對發文者進行讚賞及表態,發文者可以是個 人、社團、公司、與粉絲頁。. 5.. 戳一下(Pokes):作為提醒對方,並表示你還記得他,或讓對方記得你。. 6.. 活動(Events):Facebook 活動的功能幫助用戶通知朋友們將發生的活動,幫助用 戶組織線下的社交活動。. 2. 參考資料來源:http://share.inside.com.tw/posts/5249 2.

(14) 7.. 刊登廣告:刊登 Facebook 廣告可以幫助企業達成目標,鎖定各種目標對象來建立 廣告、設定預算,並衡量不同裝置上的廣告成果。. 8.. 建立粉絲頁:Facebook 粉絲頁為公司在 Facebook 上的代言人,我們可以使用粉絲 頁開發新顧客,以及和用戶保持聯繫,是用來吸引顧客上門互動的絕佳管道。. 1.1.2. Facebook 粉絲頁. 在臉書上大致上可以分為個人帳號、社團、粉絲頁這幾種身份,粉絲頁可以協助企業、. 政 治 大 增應用程式或其他方式來自訂粉絲頁,對粉絲頁按讚的人和他們的朋友可以在動態消息 立. 品牌或是組織用來分享動態,而且與個人檔案一樣,可以透過發佈動態、舉辦活動、新. 中收到粉絲頁的更新。. ‧ 國. 學. 粉絲頁與個人檔案的不同之處在於,個人檔案不用作商業用途,代表的是用戶個. ‧. 人,粉絲頁看起來與個人檔案相似,不過卻可以為企業、品牌及組織提供特定工具,粉. y. Nat. 絲頁是由擁有個人檔案的用戶負責管理,用戶可以對粉絲頁按讚以在動態消息中看見內. er. io. sit. 容更新,註冊 Facebook 的每位用戶都有一個包含登入資訊的帳號,每個帳號可以有一 個個人檔案,並可管理多個粉絲頁。. al. n. v i n Ch 另一種跟粉絲頁相似的類型為社團,它是可以幫助一小群用戶提供非公開的空間, engchi U. 讓他們就共同興趣進行交流,表 1.1 為粉絲頁與社團的區別,說明粉絲頁與社團在隱私、 對象、溝通三方面的不同之處3。. 3. 參考資料來源:https://www.facebook.com/help/281592001947683/ 3.

(15) 表 1.1 粉絲頁與社團的區別 粉絲頁 隱私. 社團. 粉絲頁資訊及貼文屬於公開性質,一 除了公開設定外,社團有更多隱私設定 般而言 Facebook 的所有用戶都可 可使用。在私密與非公開社團中,只有 以看見。. 對象. 社團成員才能看見貼文。. 任何人都可以對粉絲頁按讚並與其 您可以調整社團隱私,要求成員加入時 聯繫,取得動態消息更新。並沒有限 必須經過管理員批准或新增。當社團達 制對粉絲頁按讚的人數。. 溝通. 立. 到某個規模時,部分功能會有所限制。. 最實用的社團可能是與一小群您認識 治 政 的用戶一起建立的社團。 大. 協助管理粉絲頁的用戶可以從粉絲. 在社團,當任何成員在社團中貼文,成. 學. ‧ 國. 頁分享貼文。粉絲頁貼文會出現在對 員在預設情況下都會收到通知。社團成 頁按讚用戶的動態消息中。粉絲頁擁 員可參與聊天、上傳相片到共享相簿、. ‧. 有者也可以替粉絲頁建立自訂應用. 一起協作社團文件及邀請身為成員的. y. Nat. 程式,並查看粉絲頁洞察報告以追蹤 朋友參加社團活動。. n. er. io. al. sit. 粉絲頁的成長情形及活動紀錄。. Ch. engchi. i n U. v. 1.2 研究動機和目的 在資訊網路發達的時代裡,我們可以輕易地進入虛擬世界,讓資料累積的速度不斷成 長,這也產生出許多有關數位人文領域的研究,數位人文為數位科技與人文研究互相結 合的應用,在這當中像是 Facebook 這類的知名社群網站和現實社會之間互相衝擊所帶 動出的研究議題都是值得受到關注。因此,本研究針對臉書上的粉絲頁,設計建構出一 套臉書粉絲頁資料抓取系統,能夠將指定粉絲頁上的塗鴉牆訊息抓取後存入至資料庫, 提供簡單的操作及顯示介面,可協助學者研究分析粉絲頁的動態消息資料,針對臉書所 帶來的新現象進行更多的觀察,因此,本研究的目的包括: 4.

(16) 1. 設計與建置一套臉書粉絲頁資料抓取系統,並探討相關技術與功能。 2. 提供使用者抓取資料的服務,將使用者要求的粉絲頁塗鴉牆上之所有訊息不間斷地 抓取下來並存入資料庫直至抓取完畢。 3. 提供更新資料的服務,定時自動更新以便使用者掌握最新資訊。 4. 開始抓取資料後,可提供使用者隨時觀看目前所抓取粉絲頁之各類資料訊息。. 1.3 論文架構. 政 治 大 關技術及研究;第三章介紹我們設計系統的架構理念;第四章說明我們系統的實作、功 立. 本論文共分成六章。在第一章我們介紹研究背景、研究動機及研究目的;第二章探討相. ‧. ‧ 國. 學. 能介面及操作流程;第五章描述我們系統的實驗成果;第六章為結論與未來展望。. n. er. io. sit. y. Nat. al. Ch. engchi. 5. i n U. v.

(17) 第二章. 文獻探討. 2.1 數位人文 數位人文為數位科技與人文研究互相結合的應用,對於數位人文的發展趨勢,項潔等人 [1]做出觀察及討論,從近年來的趨勢談起,簡單描述數位人文如何在全球的學界中迅速. 政 治 大. 的發展,並探討人文研究如何結合數位科技,產生出新的研究方法。為促進數位人文研. 立. 究發展,科技部也公開徵求數位人文研究計畫,鼓勵學者做出數位人文領域之學術研. ‧ 國. 學. 究,將數位人文研究主要分成三大主題:創用新工具、探索新現象、建構新文化4。 在創用新工具的研究主題中,研究人員可以探討在數位科技下人文研究的新方向,. ‧. 思考如何利用數位研究工具進行人文研究,數位化傳統研究手段,做出有關大歷史架構. y. Nat. sit. 的人文研究或是橫跨多重區域的大型文化整合研究;在探索新現象的研究主題中,研究. n. al. er. io. 人員可由人文及社會科學反思融入生活脈絡裡的數位科技,關注數位科技所帶來的社會. i n U. v. 衝擊,探討人類在數位世界的各種行為,分析人類在虛、實兩種世界所做出的行為之異. Ch. engchi. 同處;在建構新文化的研究主題中,研究人員可以思考如何以設計科學的方式營造出數 位世界,可以探討如何將巨量資料做視覺化設計,或是將數位科技與表演藝術結合來提 升生活的多變性。. 2.2 社群網站相關研究 在眾多有關社群網站的研究當中,有許多研究是利用問卷調查的方式來收集資料,在這 當中有些研究是在探討社群網站與使用者之間的關係,像是林泳舜[2]主要探討臉書粉絲. 4. 科技部人文社會科學研究中心,http://www.hss.ntu.edu.tw/news_d.aspx?no=5&d=181 6.

(18) 頁與使用者之間的互動,在使用者使用粉絲頁的過程中,受到粉絲頁中的貼文影響所激 發的專頁使用動機以及情境因素,如何影響使用者的資訊處理形式,進而影響其參與行 為,他們主要針對 Facebook 大學生使用者,採用紙本問卷的方式做抽樣調查。陳重任[3] 採用問卷調查的方式,針對三種不同類型社群網站上的使用者(Facebook、巴哈姆特、 優仕網),探討社群網站使用者對社群網站之使用態度,發現社群網站使用者的個人背 景、網路使用動機、網路使用經驗、網路使用頻率與社群網站類型,對使用者的社群網 站使用態度皆有顯著影響。王莉瑛[4]研究社群網站使用者的網絡規模對社群網站的影. 政 治 大 用 Google+的使用者做問卷調查,發現使用者因為網絡規模、態度及年齡的因素皆會對 立 響,以 Facebook 及 Google+兩種社群網站為主,針對只使用 Facebook 的使用者及也使. 於多元使用新社群網站產生影響。. ‧ 國. 學. 有些研究是在探討社群網站上的現象,像是林近[5]以「同性婚姻合法化」為研究議. ‧. 題,以臉書為研究場域,探討社群媒體上的沉默螺旋現象,他們以網路問卷調查的方式,. y. Nat. 了解臉書使用者在臉書上,面對爭議性議題的表達意願。康至青[6]探討在 Facebook 上. er. io. sit. 的健康宣導訊息中,加入一些如恐懼或噁心的負面情緒元素,是否會有較好的宣導效 果,並有較多的觀看者分享該訊息,他們以問卷調查的方式,在問卷中模擬 Facebook. al. n. v i n Ch 的訊息內容來觀察觀看者的反應,發現對訊息態度會直接影響到分享訊息意圖,而在恐 engchi U 懼加噁心情境中,會有較高的分享訊息意圖。. 有些研究是在探討社群網站所帶來的影響,像是陳慧潔[7]採用問卷調查的方式,探 討國小高年級學童臉書使用行為、臉書成癮及人際溝通能力之關聯性,並瞭解學童在不 同背景變項下臉書使用行為、臉書成癮與人際溝通能力間的差異情形。黃昆山[8]利用線 上問卷與紙本問卷的方式,針對臉書遊戲的玩家,探討使用者對於臉書遊戲商品的購買 意願與原因。陳子玲[9]探討學校若運用大學生經常使用的社群媒體,宣傳學校舉辦的健 康促進活動,是否提升學生參與活動的意願,他們針對某大學有使用該校 Facebook 社 團專頁之在學學生進行問卷調查,發現使用學校 Facebook 接收活動訊息的意願確實會 正向且顯著的影響大學生參與健康促進活動的意願。 7.

(19) 上述論文,只是社群網站相關研究的例子,國內外都還有更多相關研究論文,但這 類研究大多是以問卷方式進行,研究的規模有限,而本研究所開發的工具,將可協助主 題類似但規模更大的研究。. 2.3 網路爬蟲相關研究 隨著資訊爆炸的時代來臨,幾乎所有的資訊都可以經由網路而獲得,因此也產生出許多 搜尋引擎來幫助人們從龐大的資料當中搜尋出相關資料,讓這些豐富的資訊能夠有效地. 政 治 大 至上可以分為搜集資訊、整理資訊、接受查尋[10],在這當中,搜集資訊的部分主要就 立. 被人們使用,像是 Google、Yahoo、Bing 等知名的搜尋引擎,而這些搜尋引擎的工作大. ‧ 國. 學. 是利用網路爬蟲程式(Web Crawler),它可以將全世界的網頁通通抓回去儲存起來,以提 供搜尋引擎進行資料整理及查詢服務。. ‧. 為了能夠方便大家抓取自己所需的資料,在網路上也出現一些 open source 的網路. sit. y. Nat. 爬蟲可供大家選擇並加以利用,有些市場分析公司和研究人員會利用這些網路爬蟲來收. al. er. io. 集相關資料,從中進一步地分析消費者和市場的發展趨勢,在此我們挑出幾個較熱門的. v. n. open source 的網路爬蟲整理成表 2.1,其中大部分的網路爬蟲都是使用 Java 開發完成. Ch. engchi. i n U. 的,像是 Heritrix、Nutch、WebLech、WebLech,而 Scrapy 則是在 Python 上很受歡迎的 爬網框架,研究人員可以依據自己的需求及喜好來找出適合的網路爬蟲程式使用。不過 假如我們想要利用這些爬蟲工具來抓取臉書上的資料的話是不被允許的,在臉書上有針 對這些自動抓取的爬蟲工具訂定條款來規範5,若想要透過爬蟲工具來抓取資料則必須 要向臉書申請並遵守規範,在審查通過後才可使用,而我們所開發的粉絲頁塗鴉牆資料 抓取器已有和臉書取得授權來抓取資料,站在使用者使用的觀點上,只需要向系統指定 好想要抓取的粉絲頁,系統便會抓取相對應的塗鴉牆訊息,將取得的塗鴉牆訊息分類整 理好後存入至資料庫中,方便使用者使用。. 5. 參考資料來源:https://www.facebook.com/apps/site_scraping_tos_terms.php 8.

(20) 表 2.1 熱門的 open source 的網路爬蟲 名稱. 開發語言. 簡介. Heritrix. Java. 可以通過 Web 用戶界面來啟動、設置爬行 參數並監控爬行,具有良好的可擴展性。. Nutch. 利用 Lucene 為函式庫,架構於 Hadoop 之. Java. 上,主要具備抓取及搜索兩大部分。 WebLech. 立Java. Web-Harvest. 夠盡可能模仿標準 Web 瀏覽器的行為,具 治 政 有一個功能控制台並採用多線程操作。 大 能夠收集指定的 Web 頁面,並從這些頁面. ‧ 國. 學. Scrapy. 可支持許多功能需求來下載網站,並且能. Java. 中提取有用的數據。 Python. 它是一個為了爬取網站及提取出數據而編. ‧. 寫的應用框架,可以應用在包括數據挖. n. al. er. io. sit. y. Nat. 掘、訊息處理、儲存歷史數據等。. v. 網路爬蟲運作的流程是經由搜尋引擎的網址資料庫取得初始種子(Initial Seeds). Ch. engchi. i n U. 後,開始產生數個執行緒開始收集 Web page,將所得的資料儲存到資料庫中,並擷取出 Web page 中的所有連結(URL),連結可能是一個網頁、圖檔、文件、影音等等,所有 剖析出的連結會存到一個佇列(Queue)當中,等待前一個處理完的執行緒取得新的連 結後再進行重複動作,繼續往更深的層次抓取,直到所有的連結都被處理完畢為止,其 架構如下圖 2.1 所示[11]。. 9.

(21) 立. 政 治 大. ‧ 國. ‧. 2.3.1. 學. 圖 2.1 Typical high-level architecture of a Web crawler [11]. Parallel Crawler. sit. y. Nat. 全世界網頁累積的數量越來越龐大,想要有效地將所有網頁抓取下來,勢必得採用. al. er. io. Parallel Web Crawler System 的方式來實踐[12],一般 parallel crawler 依據協調的方式主. v. n. 要可以分成 Static assignment 及 Dynamic assignment 兩種類型。. Ch. engchi. i n U. Static assignment 的類型不具備 central coordinator 來協調各個 crawler,是將被劃分 好的 Web 靜態分配給各個 crawler 進行抓取,crawler 間知道彼此負責抓取哪些部分,其 中當開始抓取時又可再分為 crawler 間不做溝通協調的 independent crawler 及各個 crawler 間會互相溝通的 communicating crawler,在 independent crawler 方面,它只會負責抓取 被分配到的 seed URLs 以及接下來的連結,當遇到的 URL 連結是屬於別的 crawler 所負 責的部分時,crawler 有兩種處理方式,一種是直接放棄抓取該 URL 以避免重複抓取, 稱作 Firewall mode,不過這種情況可能會造成有些 URL 沒有被抓取到,另外一種是抓 取該 URL,稱作 Cross-over mode,不過會造成重複抓取。在 communicating crawler 方 面,crawler 兩兩之間會互相溝通的方式,稱作 Exchange mode,雖然可以避免 Firewall 10.

(22) mode 及 Cross-over mode 的問題,但是會造成 crawler 間溝通成本過高。 Dynamic assignment 的類型具有一個 central coordinator 來協調各個 crawler,將 Web 劃分好之後,依照各個 crawler 的情況來動態分配 URLs[13]。. 2.3.2. Focused Web Crawler. Web Crawler System 依據網頁抓取的特性可分為 General Web Crawler System 以及 Focused Web Crawler System,General Web Crawler System[14]主要的目的就是無差別地. 政 治 大 網頁,在眾多的連結當中選擇相關的連結抓取,Chakrabarti 等人[15]提到的 Focused Web 立. 將所有網頁抓取下來,Focused Web Crawler System 主要的目的是只抓取某些特定領域的. Crawler System 架構由 classifier、distiller 及 crawler 所組合而成,classifier 用來決定網頁. ‧ 國. 學. 抓取的方向,distiller 用來決定網頁拜訪的優先順序,crawler 根據 classifier 跟 distiller. ‧. 的決策來抓取接下來的網頁。. y. Nat. Web2.0 帶出一種新的網際網路方式,其運作模式更加以用戶為中心,和一般網頁. er. io. sit. 產生的方式不同,是由用戶主導來生成內容,我們可以清楚地知道在抓取之後可以獲得 哪些資訊,常見的類型像是部落格、論壇、社群網站等等,有許多研究都圍繞在這當中,. al. n. v i n C h做出資料抓取器,可讓研究人員取得 Twitter 上的用 像是 Boanjak 等人[16]針對 Twitter engchi U. 戶資訊作為分析的依據,Zhang 等人[17]分析影音社群網站的架構類型,將抓取到的網. 頁加以分類,Melanie 等人[18]針對網路上的評論,將具有使用者留言的相關網頁抓取下 來,Chau 等人[19]針對線上拍賣網站 eBay,透過 parallel crawling 及採用動態分配架構 的方式,有效地抓取 eBay 上用戶的個人資訊以及受到的評價資訊,在與臉書相關的研 究當中,大多都是抓取與用戶相關的資訊,可以用來分析用戶之間的關係,像是 Catanese 等人[20]取得用戶以及朋友列表資訊,比較採用不同抽樣策略的抓取結果,Viswanath 等 人[21]抓取用戶、朋友以及塗鴉牆訊息,觀察用戶之間互相交流的熱絡程度,Siwag[22] 等人所提出的 parallel focused crawler,針對 Facebook 上的使用者,以使用者的 id 為 seed,取得相對應的公開基本資訊,在獲得使用者的授權之後,進一步取得使用者的詳 11.

(23) 細個人資訊,包括學歷、工作經歷、好友名單、興趣及喜愛的人事物等等,並且提供平 台可對已抓取的資料以不同類型做出分群顯示,[23]針對臉書用戶動態消息資料,設計 與實作出一個臉書使用者行為資料蒐集系統,以協助學者研究分析,他們提出一套歸戶 機制來降低重複蒐集的次數,以提升資料蒐集的效率,以及設計一套臉書蒐集相容機 制,以確保資料蒐集過程的穩定及結果的完整。 本論文建置的臉書粉絲頁資料抓取器主要將工作分為資料抓取模組及資料剖析模 組,依照上述的網路爬蟲運作概念,採用 parallel focused crawling 及動態分配架構的方. 政 治 大 Process)及剖析程序(Parsing Process),抓取程序將所得的資料和擷取出相關的下一頁 立. 式來提升抓取速度,以粉絲頁 ID 為初始種子,系統會開始產生抓取程序(Crawling. 連結分別存入至資料佇列及連結佇列中,等待前一個處理完的抓取程序從連結佇列中取. ‧ 國. 學. 得新的連結後,再繼續進行重複動作;剖析程序從資料佇列中取得資料,並擷取出需要. ‧. 的資訊,儲存到資料庫中,等待前一個處理完的剖析程序從資料佇列中取得新的資料. n. al. er. io. sit. y. Nat. 後,再繼續進行重複動作。. Ch. engchi. 12. i n U. v.

(24) 第三章. 系統設計. 3.1 系統設計概念 Facebook 粉絲頁的塗鴉牆是一個可以和粉絲互動的地方,粉絲對於塗鴉牆上每一則的發 文訊息都會有不同的反應及評論,有些文章可能得到許多粉絲的關注,有些則否。本論. 政 治 大. 文在此針對 Facebook 粉絲頁上的資訊,提出一個全自動資料抓取系統,期望以最簡單. 立. 方便的方式提供使用者容易操作的使用介面。設計概念如下:. ‧ 國. 學. 1. 簡易操作:系統提供簡易輸入的操作介面,使用者只需指定粉絲頁即可開始抓取該 粉絲頁塗鴉牆上的訊息。. ‧. 2. 全自動抓取:系統可抓取多個粉絲頁訊息資料,抓取下來的資料經過系統解析後存. y. Nat. sit. 入資料庫,當粉絲頁塗鴉牆上所有訊息都抓取完畢時即會停止抓取。. n. al. er. io. 3. 定時更新:系統可以啟動定時更新,更新一定時間範圍內的訊息,讓使用者可以取 得粉絲頁上的最新資訊。. Ch. engchi. i n U. v. 4. 資料顯示:透過資料顯示介面,使用者可觀看在資料庫中目前已抓取的各類資料內 容以及抓取進度。. 下圖 3.1 為本系統設計的基本概念示意圖。使用者可以透過 Data Crawler System 來 指定要抓取的 Facebook 粉絲頁,按下執行按鈕,系統便會連結至 Facebook,開始自動 抓取 Facebook 粉絲頁上的塗鴉牆訊息,再來系統會針對抓取到的塗鴉牆訊息做資料剖 析,最後將剖析出來的結果全部存入到資料庫當中,系統主要的目的就是將 Facebook 粉絲頁塗鴉牆上的訊息資料整理好之後,把它們通通搬入到使用者的資料庫裡,讓使用 者可以藉由這些資料來進一步做出研究分析。 13.

(25) Facebook. 粉絲頁. 學. ‧ 國. 立. 政 治 大 Data Crawler System. ‧. n. 剖析結果. Ch. engchi. er. io. sit. y. Nat. al. i n U. v. SQL Server. 圖 3.1 本研究的系統設計的基本概念. 本論文針對 Facebook 粉絲頁塗鴉牆上的訊息,將其內容主要區分成三大類,分別 為文章訊息、留言訊息、按讚訊息,在 Facebook 上,每一則文章、留言以及每一位用. 14.

(26) 戶都具有一個唯一 ID 值,且用戶不能對同一則文章或留言重覆按讚,每一筆文章訊息 記錄可以對應到多筆留言訊息紀錄或按讚訊息記錄,其關聯如圖 3.2 所示:. 政 治 大. 立. ‧. ‧ 國. 學. al. er. io. sit. y. Nat. 圖 3.2 文章訊息、留言訊息、按讚訊息關聯圖. v. n. 在抓取粉絲頁資料時,系統會記錄目前所抓取的粉絲頁,而在 Facebook 上取得的. Ch. engchi. i n U. 資料為 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/ 15.

(27) ID 是用”粉絲頁 ID_唯一 ID”表示,留言訊息 ID 是用”文章訊息的唯一 ID_唯一 ID”表示, 可看出此文章是屬於哪個粉絲頁以及此留言是屬於哪則文章,表 3.1 為記錄目前所抓取 的粉絲頁內容,表 3.2 為紀錄抓取到的 JSON 資料,表 3.3 為紀錄 seed 連結資料,表 3.4 至表 3.6 為資料庫當中所儲存的各類訊息內容:. 表 3.1 目前所抓的粉絲頁 欄位名稱. 型態. FanpageID. bigint. 粉絲頁的 ID. char(8). 抓取狀態. time. datetime. 開始抓取時間. updatetime. datetime. 開始更新時間. Fanpagename. 立. 治 粉絲頁的名稱 政 varchar(50) 大 學. ‧. ‧ 國. state. 記錄內容. io. al. jsondata. currentTime. Ch. y 記錄內容. bigint. n. FanpageID. 型態. text. edatetime ngchi. er. 欄位名稱. sit. Nat. 表 3.2 抓取到的 JSON 資料. 粉絲頁的 ID. i n U. v. 抓取到的 JSON 資料 儲存到資料庫時間. 表 3.3 seed 連結資料 欄位名稱. 型態. 記錄內容. FanpageID. bigint. url. text. currentTime. datetime. 粉絲頁的 ID 連結資料. 16. 儲存到資料庫時間.

(28) 表 3.4 文章訊息記錄內容 欄位名稱. 型態. FanpageID. bigint. postid. varchar(50). fromid. bigint. fromname. varchar(50). message. text. 文章訊息內容. shares_count. int. 文章被分享次數. like_total comment_total. 立. 記錄內容 文章訊息所屬的粉絲頁 ID 文章訊息 ID 發文者 ID 發文者名稱. int 文章被按讚次數 政int 治 文章被留言次數 大 發文時間. updated_time. datetime. 更新文章時間. currentTime. datetime. 儲存到資料庫時間. ‧ 國. ‧. n. al. Ch. 型態. er. io. 表 3.5 留言訊息記錄內容. sit. y. Nat 欄位名稱. 學. datetime. created_time. i n U. v. 記錄內容. e bigint ngchi. 留言訊息所屬的粉絲頁 ID. postid. varchar(50). 留言訊息所屬的文章訊息 ID. commentsid. varchar(50). 留言訊息 ID. commentsfromid. bigint. commentsfromname. varchar(50). commentsmessage. text. commentscreated_time. datetime. commentslike_count. int. currentTime. datetime. FanpageID. 留言者 ID 留言者名稱 留言訊息內容 留言時間 留言被按讚次數. 17. 儲存到資料庫時間.

(29) 表 3.6 按讚訊息記錄內容 欄位名稱. 型態. FanpageID. bigint. postid. varchar(50). likeid. bigint. likename. varchar(50). currentTime. datetime. 3.2 系統架構設計. 立. 記錄內容 按讚訊息所屬的粉絲頁 ID 按讚訊息所屬的文章訊息 ID 按讚者 ID 按讚者名稱 儲存到資料庫時間. 政 治 大. 本章節依據 3.1 的系統設計概念,將系統架構成三層式架構,分別為使用者介面層. ‧ 國. 學. (user interface layer)、商業邏輯層(business logic layer)、資料存取層(database access layer),其架構如圖 3.3 所示,使用者介面層負責提供操作介面及展示介面給使用者使. ‧. 用,使用者可以輸入適當的資訊來和系統互動;商業邏輯層負責針對使用者介面層所傳. y. Nat. sit. 輸的使用者要求來執行相對應的任務;資料存取層負責對資料庫做資料存取的動作,提. n. al. er. io. 供資料給商業邏輯層使用。我們將系統設計成三層式架構的好處就是可 以 讓 我 們 的 系. i n U. v. 統變得更有彈性,像是可以輕易的替換使用者介面或者是改變要 連結的資料. Ch. engchi. 庫,再 來 是 它 的 結 構 清 楚,每 一 層 都 負 責 不 同 的 事 情,假 如 出 現 異 常 的 話,能 夠 快 速 的 找 出 問 題 點 在 哪 裡,另 外 假如想要對系統功能作修改的時候,可以讓我們 比較容易維護。. 18.

(30) 使用者介面層 user interface layer. 商業邏輯層. 資料存取層. 學. ‧ 國. 立. business logic layer 政 治 大. Nat. y. ‧. database access layer. er. io. sit. 圖 3.3 本研究的系統的三層架構. al. n. v i n Ch 依據 3.1 節的系統設計概念以及上述的三層式架構概念,完成下圖 3.4 系統詳細架 engchi U. 構圖,我們將系統的架構配置成三層式架構,使用者介面層負責和使用者接觸互動,商 業邏輯層負責連結至 Facebook 抓取資料,資料存取層負責連結至資料庫做資料存取, 接下來我們會針對各層主要負責的項目內容做細部說明。. 19.

(31) 使用者. 使用者介面層 操作執行介面. 資料顯示介面. 政 治 大. 商業邏輯層 抓取粉絲頁資料. 自動更新資料. Facebook. Nat. n. al. er. io. sit. y. ‧. 搜尋粉絲頁. 學. ‧ 國. 立. Ch. 資料存取層 存入資料. engchi. i n U. v. 取出資料. 資料庫. 圖 3.4 本研究的系統的詳細架構圖. 20.

(32) 在使用者介面層上,系統提供兩種介面供使用者使用,分別為操作執行介面及資料 顯示介面。操作執行介面為使用者操作系統的主要介面,主要包含直接抓取、搜尋、自 動更新、顯示目前抓取粉絲頁記錄等四種功能: 1.. 直接抓取:使用者輸入想要抓取的粉絲頁網址或粉絲頁 ID 後,即可開始抓取該粉 絲頁上的塗鴉牆訊息。. 2.. 搜尋:使用者輸入關鍵字後,即可搜尋出相關的粉絲頁,且搜尋出的結果會依據被 按讚的次數做排列,使用者從中勾選出想要抓取的粉絲頁後即可開始抓取。. 3.. 顯示目前抓取粉絲頁紀錄:顯示目前所抓的粉絲頁紀錄及抓取狀態,各個紀錄都可. 學. ‧ 國. 4.. 政 治 大 時的對所有已抓取的粉絲頁做更新資料的動作,更新一定時間範圍內的所有資料。 立 自動更新:使用者設定好自動更新的時間以及更新資料的時間範圍後,系統便會定. 再連結至該粉絲頁的資料顯示介面。. ‧. y. Nat. 在資料顯示介面上則是提供使用者可以觀看目前所抓取到的粉絲頁塗鴉牆內容,使. er. io. sit. 用者可從目前抓取粉絲頁紀錄資料連結至此,此介面會將該粉絲頁的資料分別以文章訊 息、留言訊息、按讚訊息顯示,而各個資料列還可進一步連結顯示出該列資料所屬文章. al. n. v i n C h 3.5 為使用者介面層中對於資料呈現方式的示意 的文章訊息、留言訊息、按讚訊息。圖 engchi U. 圖,使用者執行抓取後,在操作執行介面上會呈現目前已抓取的粉絲頁名稱,而各個粉 絲頁名稱紀錄可連結至資料顯示介面,顯示某粉絲頁上所有塗鴉牆訊息,當中的每筆資 料都可再連結顯示出該筆資料所屬的塗鴉牆訊息。. 21.

(33) 操 作 執 行 介 面. 目前已抓取的 粉絲頁名稱. 立. ‧. ‧ 國. 學. 資 料 顯 示 介 面. 治 政某粉絲頁塗 鴉牆訊息 大. y. sit. io. n. al. er. Nat. 某則塗鴉 牆訊息. Ch. engchi. i n U. v. 圖 3.5 使用者介面層中對於資料的呈現方式. 在商業邏輯層上主要負責執行從使用者介面層所傳達過來的任務,為系統運作的主 要部分,其包括執行粉絲頁搜尋任務、粉絲頁資料抓取任務、定時資料自動更新任務、 資料處理等。當使用者從使用者介面層輸入想要抓取的粉絲頁的名稱時,系統會以此作 為關鍵字,將它傳到商業邏輯層來執行粉絲頁搜尋任務,商業邏輯層再以此關鍵字,從 Facebook 上取得相關的粉絲頁搜尋結果,取出搜尋到的粉絲頁名稱、ID、被按讚次數, 並以粉絲頁被按讚的次數為依據做排序,讓使用者能夠從中挑選出相關的熱門粉絲頁。 當使用者已經確定要抓取某粉絲頁的資料時,系統會從使用者介面層上將被指定的粉絲 22.

(34) 頁資訊傳遞給商業邏輯層,開始執行粉絲頁資料抓取任務,被指定的粉絲頁資訊可以為 粉絲頁網址、粉絲頁 ID、在搜尋任務中被使用者挑選的粉絲頁,系統透過這些資訊取 得粉絲頁 ID 後,以此 ID 為初始種子,連結至 Facebook 上取得資料,並將資料傳遞給 資料存取層,存入資料庫中。當使用者已經有抓取某粉絲頁資料後,即可在使用者介面 層上設定定時自動更新參數,設定完成後便會將此參數傳遞給商業邏輯層,開始執行定 時資料自動更新任務,滿足使用者所設定的參數,定時從 Facebook 上取得資料,並傳 遞給資料存取層,儲存至資料庫中做資料更新。. 政 治 大 商業邏輯層的要求,從資料庫中取得符合要求的資料,傳遞回商業邏輯層使用,像是商 立. 在資料存取層上主要負責資料的管理以及連結資料庫做資料存取動作,此層會依照. 業邏輯層在執行粉絲頁資料抓取任務時,會來資料存取層取得所要抓取的連結資料,或. ‧ 國. 學. 是透過商業邏輯層將資料傳送至使用者介面層,將使用者所要求的資料顯示到資料顯示. ‧. 介面。我們可以在此層設定系統要連結的資料庫,將商業邏輯層所抓取到的資料存入至. y. Nat. 資料庫當中,其中包括目前所抓的粉絲頁紀錄、抓取到的 JSON 資料、Seed 連結資料、. er. io. sit. 剖析完後的三大類訊息資料,抓取到的資料全部都會儲存到設定的資料庫中,讓使用者 可以以此做出各類不同的分析研究。. n. al. 3.3 系統模組設計. Ch. engchi. i n U. v. 本章節依據 3.1 節的系統設計概念,和 3.2 節的系統架構設計,規劃設計系統的各模組 及功能,將系統主要分為五個模組,分別如下所示: 1.. 搜尋資料模組:此模組可幫助使用者利用關鍵字來搜尋相關粉絲頁,從臉書上取得 符合的粉絲頁資料,並以被按讚次數做排序顯示,可進一步協助使用者挑選想要抓 取的粉絲頁,提升使用者使用系統的便利性。. 2.. 資料抓取模組:此模組和資料剖析模組皆為系統主要運作模組,在接收使用者要求 且確定要抓取的粉絲頁後,便會自動從臉書上抓取被指定的粉絲頁塗鴉牆資料,並 23.

(35) 且從中擷取出相關連結,以作為接下來要繼續抓取的種子,重複抓取動作直到抓取 完畢。 3.. 資料剖析模組:此模組負責將資料抓取模組所抓取下來的 JSON 資料剖析成文章訊 息、留言訊息、按讚訊息,並將剖析完的結果存入至資料庫中,且會持續剖析 JSON 資料直到資料抓取模組所取得的 JSON 資料全被剖析完畢為止。. 4.. 資料更新模組:此模組可針對已抓取的粉絲頁,定時抓取最新訊息,更新一定時間 範圍內的資料,依據使用者所設定的更新時間及範圍,定時從臉書上取得最新資料。. 5.. 政 治 大 現給使用者,可讓使用者觀看抓取到的資料內容,幫助使用者掌握系統資料抓取情 立. 內容呈現模組:此模組會依據使用者的要求,從資料庫中取出抓取到的各類資料呈. 形。. ‧ 國. 學. 搜尋資料模組. ‧. 3.3.1. y. Nat. 搜尋資料模組的工作流程如圖 3.6 所示,此模組主要會依據使用者所輸入的關鍵字. er. io. sit. 到 Facebook 上搜尋相關的粉絲頁,將搜尋到的資料抓取下來並擷取出各粉絲頁被按讚 的次數,再依照各粉絲頁被按讚的次數多寡來做出排序並將結果顯示出來,若是搜尋到. al. n. v i n Ch 的粉絲頁資料已經抓取完畢的話就結束搜尋的動作,若還有資料存在則繼續抓取搜尋到 engchi U 的資料,並再次做出排序後將排序好的結果顯示出來。此模組可以根據使用者所指定的 關鍵字,從 Facebook 上找出相關且擁有許多粉絲按讚的粉絲頁,讓使用者可以將這些 粉絲頁列為研究分析的對象。. 24.

(36) 使用者輸入關鍵字 搜尋資料. Facebook 抓取資料 符合的 粉絲頁. 立. 政 治 大. ‧ 國. 學 顯示搜尋結果. ‧. 依被按讚次數排列. 否. Nat. n. al. 是. er. io. sit. y. 資料是否 抓取完畢. Ch. engchi. i n U. v. 搜尋結束. 圖 3.6 搜尋資料模組的工作流程. 3.3.2. 資料抓取模組. 資料抓取模組的工作流程如圖 3.7 所示,此模組的功能為自動抓取資料,主要是以 使用者所指定的粉絲頁 ID 當作 seed,從 Facebook 上抓取相對應的粉絲頁塗鴉牆訊息, 再來會從抓取下來的塗鴉牆訊息中剖析出塗鴉牆下一頁的連結資訊,接下來會把抓取到 的塗鴉牆訊息以及剖析出的連結資訊存入至資料庫中,最後會檢查是否所有的連結資訊 皆已抓取完畢,若否,則持續抓取資料直到所有連結都抓取完畢為止。 25.

(37) 取得 URL 勾選搜尋出的粉絲 搜尋資料 頁 Facebook 勾選搜尋出的粉絲 抓取資料. 頁. 政 治 大. 粉絲頁塗 勾選搜尋出的粉絲 鴉牆訊息. 立. 學. 勾選搜尋出的粉絲 URL 剖析. ‧. ‧ 國. 頁. 頁 存入塗鴉牆訊息、 勾選搜尋出的粉絲 URL 連結. n. al. Database. Ch. sit er. io 頁. y. Nat. 否. engchi. 勾選搜尋出的粉絲. i n U. v. 是. 頁. 抓取結束. 勾選搜尋出的粉絲 頁. URL 是否 抓取完畢. 圖 3.7 資料抓取模組的工作流程. 勾選搜尋出的粉絲. 3.3.3. 資料剖析模組. 頁 資料剖析模組的工作流程如圖 3.8 所示,系統抓取下來的塗鴉牆訊息為 JSON 資 勾選搜尋出的粉絲 料,其欄位包括 id、from、message、likes、comments、created_time、updated_time 等, 頁 勾選搜尋出的粉絲. 26.

(38) 此模組將抓取下來的塗鴉牆訊息中 likes 及 comments 內的資料歸列為按讚訊息及留言訊 息,其他欄位的資料則作為文章訊息,將抓取到的塗鴉牆訊息全部剖析成這三大類訊 息,並將剖析完的各類訊息儲存到資料庫中,讓使用者可以進一步做研究分析使用,最 後會檢查是否尚有未剖析的塗鴉牆訊息存在,假如全部的塗鴉牆訊息皆已剖析完畢,則 結束剖析的動作,若否,則繼續剖析尚未剖析的塗鴉牆訊息。. 塗鴉牆. 政 治 大 開始剖析. 訊息. 學. ‧ 國. 立. 剖析按讚訊息. 存入資料. ‧ y. sit. io. n. al. er. Nat. 存入資料. 剖析留言訊息. Ch. engchi. 剖析文章訊息. i n U. v. 存入資料. 是. 是否尚有未剖 析塗鴉牆訊息. 否 剖析完畢 圖 3.8 資料剖析模組的工作流程 27. Database.

(39) 3.3.4. 資料更新模組. 資料更新模組的工作流程如圖 3.9 所示,此模組主要依據使用者所設定的定時更新 時間以及更新資料的時間範圍來執行資料更新,當使用者設定好更新的時間以及更新資 料的時間範圍之後,系統就會建立一個計時器來啟動定時更新,當設定的更新時間到的 時候,就會檢查目前是不是正在抓取或者是正在更新,假如有的話就不建立更新,繼續 等待下一次的更新時間,如果沒有的話,就會開始抓取塗鴉牆訊息,再來將抓取到的塗. 政 治 大 範圍的話,系統就會停止更新的動作,假如沒有的話,則會把新的剖析資料結果存入至 立. 鴉牆訊息做資料剖析並檢查,假如抓取到的塗鴉牆訊息有超過使用者所設定的更新時間. 資料庫之後,繼續抓取塗鴉牆訊息做資料更新。. ‧. ‧ 國. 學. n. er. io. sit. y. Nat. al. Ch. engchi. 28. i n U. v.

(40) 設定更新時間、範圍. 啟動定時更新 等待設定的更新時間. 是. 是否正在抓 取或更新. 立. 政 治 大. ‧ 國. 學. 否. ‧. 塗鴉牆 訊息. n. al. er. io. sit. y. Nat 資料剖析. Ch. engchi. i n U. v. 否. 是否超過更 新時間範圍. 否. 是否為新 資料. 是. 更新結束 圖 3.9 資料更新模組的工作流程 29. 是 Database.

(41) 3.3.5. 內容呈現模組. 內容呈現模組的工作流程如圖 3.10 所示,此模組主要針對資料剖析模組所儲存好 的資料,將資料內容呈現給使用者觀看,讓使用者掌握目前系統的抓取進度與結果,系 統會根據使用者的要求,呈現出不同的內容,像是它可以呈現出某個粉絲頁的塗鴉牆訊 息或者是只呈現出某則塗鴉牆訊息的資料。. 取出資料. 立. 呈現目前已抓取的粉絲頁 政 治 大. ‧ 國. 學. 使用者選取某粉絲頁. 取出資料. ‧. 呈現某粉絲頁塗鴉牆訊息. Database. Nat. y. 取出資料. n. al. er. io. sit. 使用者選取某資料訊息. Ch. i n U. v. 呈現某則塗鴉牆訊息. engchi. 圖 3.10 內容呈現模組的工作流程. 30.

(42) 第四章. 系統實作. 4.1 Facebook API Facebook 提供 API(Application Programming Interface)供開發人員使用,開發人員只需要 依據 API 所定義的方式即可使用相對應的功能,且 Facebook 具備豐富及完整的開發平. 政 治 大 動應用程式,藉由結合 Facebook 立 來達到更多效益。隨著 Facebook 使用人數的成長,日. 台,讓 Facebook API 可以應用在多種環境下,像是網站、Facebook 應用程式、以及行. ‧ 國. 學. 積月累之下,Facebook 上蘊藏著大量且多元的資料,而 Facebook 為這些資料建立出一 套物件與連結的概念,稱之為 Social Graph。大多數的開發人員使用 Facebook API 的主. ‧. 要目的就是希望能夠擷取物件本身的資訊以及物件間彼此的鏈結關係,針對這些資料. sit. y. Nat. Facebook 提供一套存取的介面供開發人員使用,稱之為 Graph API。. al. er. io. 而 Facebook 在 2015 年 4 月 30 日全面強制所有的 APP 升級到 API 2.0 以上的版本7,. v. n. 新版與舊版 API 最大不同之處為,在新版 API 中,開發商已經無法隨意索取用戶的資料,. Ch. engchi. i n U. 包括像是只能索取用戶的 Email 及 user_friends,其他的權限都要經過 Facebook 的審核, 而向 Facebook 索取到的朋友清單只會返回共同在使用此 APP 的朋友,而非全部的朋友 等等。本研究針對粉絲頁抓取塗鴉牆訊息的功能以及搜尋粉絲頁的功能,在 API 2.0 以 上的版本仍然可以使用,並沒有受到影響。. 4.1.1. Graph API. 使用 Graph API 是存取 Facebook 平台上資料的主要方法,可以用來搜尋資料、發佈新文 章、管理廣告、上傳相片等等,而 Graph API 主要是依據 Social Graph 的概念所產生的. 7. 參考資料來源:https://developers.facebook.com/docs/apps/changelog#v2_0 31.

(43) 應用程式介面,Social Graph 將 Facebook 上的資料分為以下幾種: nodes:表示基本的物件,像是使用者、相片、粉絲專頁、留言等等。 edges:表示物件之間的連結,像是使用者的相片(使用者與相片的連結)、相片上的留言 (相片與留言的連結)。 fields:表示物件的資訊,像是使用者的生日、粉絲專頁的名稱。. 在 Social Graph 上,每一個物件都具有一個唯一的 ID,使用者可以利用這些 ID 並. 政 治 大 都能夠利用 HTTP 協定來存取 Facebook 所提供的服務,我們可以透過 Graph API 來使用 立 藉由 Graph API 來存取物件。而 Graph API 是採用 HTTP 通訊協定,所以任何程式語言. 五種不同的功能8,分別為讀取、發佈、更新、刪除、搜尋。. ‧ 國. 學. 在 Graph API 上,我們可以透過 HTTP 的 GET 方法,給定物件 ID(如圖 4.1 所示). ‧. 或是再加上 edge 名稱(如圖 4.2 所示)後,即可取得相關的物件資訊。. /{node-id}. er. io. al. sit. y. Nat. GET graph.facebook.com. n. v i n 圖 4.1C透過 Graph API 取得 node 資訊 hengchi U GET graph.facebook.com /{node-id}/{edge-name}. 圖 4.2 透過 Graph API 取得 edge 資訊. 8. 參考資料來源:https://developers.facebook.com/docs/graph-api/using-graph-api/v2.2 32.

(44) 抓取下來的資訊為 JSON 格式,它會依據不同的 node 或 edge 產生出不同的結果, 不過其主要顯示出來的資料格式為一個欄位名稱(fieldname)以及一個相對應的值 (field-value) ,如下圖 4.3 所示。. { "fieldname":{field-value}, ..... }. 政 治 大. 圖 4.3 取得的資料格式. 立. 在 Graph API 上,我們可以建立出不同的 node 物件(如圖 4.4 所示),也可建立出. ‧ 國. 學. 與 node 相連的 edge 物件(如圖 4.5 所示) ,像是可以針對使用者建立出與使用者連結的. ‧. 相片物件( /{user-id}/photos ),或者是針對文章建立出與文章連結的留言物件. y. Nat. ( /{post-id}/comments ),例如圖 4.6 就是在某人的塗鴉牆上發佈訊息的方法。我們可以. n. al. er. io. edge 物件。. sit. 透過 HTTP 的 POST 方法再加上必要的參數和 access token,即可建立出 node 或相關的. Ch. engchi. i n U. v. POST graph.facebook.com /{node-id} 圖 4.4 透過 Graph API 建立 node. POST graph.facebook.com /{node-id}/{edge-name} 圖 4.5 透過 Graph API 建立 edge. 33.

(45) POST. graph.facebook.com /{user-id}/feed? message={message}& access_token={access-token}. 圖 4.6 透過 Graph API 在塗鴉牆上發佈訊息. 政 治 大 協定的 POST 方法,再加上更新的參數及 access token 後,即可對資料做修改。 立 POST. graph.facebook.com. 學. ‧ 國. 另外我們也可以透過 Graph API 來更新物件的資訊內容,使用的方法也是透過 HTTP. ‧. /{node-id}?. {updated-field}={new-value}&. Nat. er. io. sit. y. access_token={access-token}. n. a l圖 4.7 透過 Graph API 更新資料 v i n Ch engchi U. 在 Graph API 上,刪除的功能則是透過 HTTP 協定的 DELETE 方法,再加上 access token 後即可刪除該物件。. DELETE. graph.facebook.com /{node-id}? access_token={access-token}. 圖 4.8 透過 Graph API 刪除資料. 34.

(46) 最後搜尋的功能是透過 HTTP 協定的 GET 方法,附上搜尋的關鍵字、物件的類型 以及 access token 後即可使用,我們可以在 Social Graph 上搜尋到許多公開的物件資訊, 其中主要可以搜尋的類型包括像是相關的人物(user)、粉絲專頁(fan page)、地標(place)、 社團(group)、活動(event)等等。. GET. graph.facebook.com /search? q={your-query}& [type={object-type}]. 政 治 大 圖 4.9 透過 Graph API 搜尋資料 立. ‧ 國. 學 ‧. 4.2 Facebook SDK for C#. y. Nat. Facebook 根據不同的平台提供相對應的 SDK(Software Development Kit)給開發者使用,. er. io. sit. 像是 iOS SDK、Android SDK、JavaScript SDK、PHP SDK、Unity SDK 等,此外也有第 三方所提供的 SDK,讓 Facebook API 能夠擴展到更多開發平台上。本論文採用第三方. al. n. v i n C平台上,以 所提供的 C# SDK,在 Windows .NET C# 程式語言來作開發,在 Visual h e n g cASP hi U. Studio 上安裝 NuGet 套件9,在專案上按右鍵,點選管理 NuGet 套件,線上搜尋 Facebook 後,便會出現 Facebook SDK for C#,將它安裝在專案上,Facebook SDK 就會出現在專 案參考之中,接下來就可以利用 Facebook namespace 下的類別來使用 Facebook API。 基本上大多數的功能都集中在 FacebookClient 這個類別裡面10,它主要能夠讓我們. 連結至 Facebook 平台上來使用各種不同的功能,不過在這之前我們必須要先向 Facebook 取得授權後(Access Token)才能使用,在 Facebook Developers 的頁面11上申請一個 App. 9. 參考資料來源:http://www.nuget.org/ 參考資料來源:http://facebooksdk.net/docs/reference/SDK/Facebook.FacebookClient.html 11 參考資料來源:https://developers.facebook.com/ 10. 35.

(47) 後即可得到一組 App ID 以及 App Secret(如圖 4.10 所示) ,接下來我們就可以利用這組 App ID 及 App Secret 來向 Facebook 取得授權,進一步使用 Facebook 的功能,使用的方 法如圖 4.11 所示,本論文主要是使用 Graph API 上的讀取及搜尋資料的功能,兩者皆是 以 HTTP 協定的 GET 方法在 Facebook 平台上取得想要的資料,而我們可以透過 FacebookClient 類別底下的 Get 方法來實踐這些功能。. 立. 政 治 大. ‧ 國. 學 圖 4.10 申請到的 App ID 及 App Secret. ‧ y. Nat. al. er. io. //透過 AppID 及 AppSecret 向 Facebook 取得授權. sit. WebClient wc = new WebClient();. n. v i n Ch ?client_id=" + strAppID + "&client_secret=" + "&grant_type= i U e n g c +hstrAppSecret. string strResult = wc.DownloadString("https://graph.facebook.com/oauth/access_token. client_credentials");. //取出 Access Token string strAppaccessToken = strResult.Split('=')[1]; //輸入 Access Token 來使用 FacebookClient 類別功能 Facebook.FacebookClient client = new FacebookClient(strAppaccessToken); 圖 4.11 取得 Access Token 及使用 FacebookClient 類別功能. 36.

(48) 4.3 粉絲頁塗鴉牆資料結構 利用 GET graph.facebook.com/fan-pageID/posts 可取得粉絲頁塗鴉牆訊息,不過一次只能 取得一部分,從最新的塗鴉牆訊息開始,預設為 25 筆塗鴉牆訊息,可藉由設定 limit 值 來取得最多 250 筆的塗鴉牆訊息,每一筆塗鴉牆訊息會存放在 data 陣列當中,假若還有 更多的塗鴉牆訊息,在最後則會有分頁的資訊,包括前一頁以及下一頁的連結,可以幫 助我們連結到更多資料,取得的結構如圖 4.12 所示。. 學. 圖 4.12 塗鴉牆的 JSON 格式的資料結構. ‧. ‧ 國. 立. 政 治 大. y. Nat. 陣列中每一筆塗鴉牆訊息包含了 post 資訊、likes 資訊、comments 資訊,post 資訊. er. io. sit. 會依照不同的塗鴉牆訊息類型產生出相對應的欄位,像是訊息內容有圖片的話就會出現 picture 欄位、有連結的話就會出現 link 欄位等等,likes 及 comments 資訊和塗鴉牆訊息. al. n. v i n Ch 存放的方式一樣,也是將每一筆資料存放在 data 陣列當中,以及採用分頁連結的方式作 engchi U 處理。. 4.4 平行聚焦抓取及剖析 系統在抓取資料時主要會有 crawling process 及 parsing process 在運作,在 crawling process 的部分,會向 url queue 取得連結,連結至 Facebook 取得 JSON 格式資料,我們 可以利用 JSON 格式欄與值的關係來找出相關連結,將不必要的連結排除掉,只把有關 post、like、comment 的下一頁連結存入至 url queue 當中;在 parsing process 的部分,由 於需要剖析出大量的資料,若是將取得的 json data 上 data 陣列內的資料採用循序的方式 來執行剖析任務的話,就必須等待陣列內前一個資料剖析完畢後才能繼續剖析下一個, 37.

(49) 不能發揮出較佳的剖析效能,為提升電腦剖析效能,縮短系統運作時間,我們可以利用 平行運算的方式,依據 CPU 所內含的核心數來建立相對應數量的執行緒,讓 CPU 的效 能發揮到最大,提升剖析資料的速度,而我們使用的.NET Framework 4.0 有提供出一套 Task Parallel Library(TPL)技術12,這項技術將上述依據核心數建立對應的執行緒技巧, 封裝成方便使用的函式提供給開發者使用,在系統當中,我們利用 System.Threading.Tasks 類別所提供的 Parallel.For 方法,系統會針對 data 陣列裡面所存 放的每一個塗鴉牆訊息,平行執行同一個剖析作業,也就是當執行緒在處理剖析作業時. 政 治 大 上 data 陣列存放的數量 array.Count 和建立 options 參數來設定出執行緒的使用個數限制 立. 是以一則一則的塗鴉牆訊息為單位來反覆執行,如圖 4.13 所示,給定取得到的 json data. 以及設定 num 參數來表示陣列內第 num 筆資料,當我們把 options 參數設定為-1 時,代. ‧ 國. 學. 表無執行緒的個數限制,設定為 1 則代表不使用平行化改以循序的方式執行,接下來系. ‧. 統便會將 data 陣列依據這些參數做切割分配,平行處理陣列中每一個資料的剖析任務,. al. er. io. sit. y. Nat. 發揮多核心平行處理的功能,提高資料剖析的效能。. n. //開始剖析任務. Ch. i n U. v. ParallelOptions options = new ParallelOptions();. engchi. options.MaxDegreeOfParallelism = -1; //無執行緒的個數限制 Parallel.For(0, array.Count, options, num => { //剖析陣列第 num 筆資料 //存入資料庫 }); //剖析任務結束. 圖 4.13 平行處理剖析任務. 12. 參考資料來源:https://msdn.microsoft.com/en-us/library/dd537608(v=vs.110).aspx 38.

(50) 4.5 系統實作結果 接下來介紹我們系統實作的介面及各項功能,在使用者介面上,其主要可分為操作執行 介面及資料顯示介面。. 4.5.1. 操作執行介面. 圖 4.14 為系統的操作執行介面,其主要包含四個功能,分別為畫面左上方的資料抓取模 組,以及其下方的資料更新模組,右上方的搜尋資料模組,最下方的內容呈現模組。. 立. 政 治 大. ‧. ‧ 國. 學. n. er. io. sit. y. Nat. al. Ch. engchi. i n U. 圖 4.14 操作執行介面. 39. v.

(51) 圖 4.15 為資料抓取模組,使用者在此輸入粉絲頁網址或粉絲頁 ID 後,按下下方按 鈕後,系統便會開始抓取該粉絲頁資料。. 立. 政 治 大. 圖 4.15 資料抓取模組. ‧ 國. 學. 圖 4.16 為資料更新模組,在此我們設定的更新時間為每 30 分鐘自動更新以及更新 範圍為更新到 5 天前訊息,更新時間到時,系統便會對已抓取的粉絲頁開始更新資料,. ‧. 並顯示出下次更新日期以及資料更新範圍。. n. er. io. sit. y. Nat. al. Ch. engchi. i n U. 圖 4.16 資料更新模組. 40. v.

參考文獻

相關文件

If the students are very bright and if the teachers want to help prepare these students for the English medium in 81, teachers can find out from the 81 curriculum

And its huge ears can help it deal with many problems ranging from pesky insects to great danger.. The elephants’ huge ears also help them hear everything that’s happen ing

According to the passage, which of the following can help facilitate good sleep for children.. (A) Carefully choose the online content

粉絲頁面 facebook 朋友

If we want to test the strong connectivity of a digraph, our randomized algorithm for testing digraphs with an H-free k-induced subgraph can help us determine which tester should

• Guidelines can help commissioners and purchasers to make informed decisions and provide managers with a useful framework for assessing treatment costs...

Teachers can design short practice tasks to help students focus on one learning target at a time Inferencing task – to help students infer meaning while reading. Skimming task –

• Visit the primary school before school starts, find out about the learning environment and children’s impression of the school and help children adapt to the new school after the