• 沒有找到結果。

第二章 文獻探討

2.3 網路爬蟲相關研究

被人們使用,像是 Google、Yahoo、Bing 等知名的搜尋引擎,而這些搜尋引擎的工作大 至上可以分為搜集資訊、整理資訊、接受查尋[10],在這當中,搜集資訊的部分主要就 的,像是 Heritrix、Nutch、WebLech、WebLech,而 Scrapy 則是在 Python 上很受歡迎的 爬網框架,研究人員可以依據自己的需求及喜好來找出適合的網路爬蟲程式使用。不過

5參考資料來源:https://www.facebook.com/apps/site_scraping_tos_terms.php

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

圖 2.1 Typical high-level architecture of a Web crawler [11]

2.3.1 Parallel Crawler

全世界網頁累積的數量越來越龐大,想要有效地將所有網頁抓取下來,勢必得採用 Parallel Web Crawler System 的方式來實踐[12],一般 parallel crawler 依據協調的方式主 要可以分成 Static assignment 及 Dynamic assignment 兩種類型。

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

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]主要的目的就是無差別地 將所有網頁抓取下來,Focused Web Crawler System 主要的目的是只抓取某些特定領域的 網頁,在眾多的連結當中選擇相關的連結抓取,Chakrabarti 等人[15]提到的 Focused Web Crawler System 架構由 classifier、distiller 及 crawler 所組合而成,classifier 用來決定網頁 抓取的方向,distiller 用來決定網頁拜訪的優先順序,crawler 根據 classifier 跟 distiller 的決策來抓取接下來的網頁。 來,Chau 等人[19]針對線上拍賣網站 eBay,透過 parallel crawling 及採用動態分配架構 的方式,有效地抓取 eBay 上用戶的個人資訊以及受到的評價資訊,在與臉書相關的研 究當中,大多都是抓取與用戶相關的資訊,可以用來分析用戶之間的關係,像是 Catanese 等人[20]取得用戶以及朋友列表資訊,比較採用不同抽樣策略的抓取結果,Viswanath 等 人[21]抓取用戶、朋友以及塗鴉牆訊息,觀察用戶之間互相交流的熱絡程度,Siwag[22]

等人所提出的 parallel focused crawler,針對 Facebook 上的使用者,以使用者的 id 為 seed,取得相對應的公開基本資訊,在獲得使用者的授權之後,進一步取得使用者的詳

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

細個人資訊,包括學歷、工作經歷、好友名單、興趣及喜愛的人事物等等,並且提供平 台可對已抓取的資料以不同類型做出分群顯示,[23]針對臉書用戶動態消息資料,設計 與實作出一個臉書使用者行為資料蒐集系統,以協助學者研究分析,他們提出一套歸戶 機制來降低重複蒐集的次數,以提升資料蒐集的效率,以及設計一套臉書蒐集相容機 制,以確保資料蒐集過程的穩定及結果的完整。

本論文建置的臉書粉絲頁資料抓取器主要將工作分為資料抓取模組及資料剖析模 組,依照上述的網路爬蟲運作概念,採用 parallel focused crawling 及動態分配架構的方 式來提升抓取速度,以粉絲頁 ID 為初始種子,系統會開始產生抓取程序(Crawling Process)及剖析程序(Parsing Process),抓取程序將所得的資料和擷取出相關的下一頁 連結分別存入至資料佇列及連結佇列中,等待前一個處理完的抓取程序從連結佇列中取 得新的連結後,再繼續進行重複動作;剖析程序從資料佇列中取得資料,並擷取出需要 的資訊,儲存到資料庫中,等待前一個處理完的剖析程序從資料佇列中取得新的資料 後,再繼續進行重複動作。

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

相關文件