臉書經營:使用Microsoft Power Query for Excel擷取Facebook頁面資料_社群大數據_社群巨量資料

2013年第四季,台灣人愛用臉書(Facebook)程度,達到全球第一

Social Media Insights
社群媒介洞察__Social Media Insights

儘管大家對臉書褒貶有之,依據Alexa最近一個月的統計,臉書的訪客數與瀏覽數,在世界排名還是老二,台灣排名稍屈居小三;另一家ComSore的數據,臉書則穩坐全美社群媒介圈的龍頭,在上個月的訪客數也只輸給了Google而已。

【玩】臉書似乎已成為國民最常見的網路行為,無論何時何地,都想在臉書上按讚、留言、分享、打卡;或是透過臉書看新聞、買東西、拍照上傳、瀏覽影音……。臉書是為時下最流行、最重要的資訊交換平台,以及人際網絡介面,有越來越多人透過臉書發言、交友、宣傳、交易、行銷、做研究。基此,從經營、管理、學術、娛樂的角度,臉書頁面的各式活動紀錄,勢必成為矚目的焦點。

再者,隨著臉書個人帳號、社團、粉絲專頁的開設時間、瀏覽人數、貼文與回應日增,處理這些龐大網頁紀錄與相關資料,自無法再繼續使用目視或土法煉鋼的方法,既無效率,亦無準確性可言。近來大數據概念興起,連帶也影響在對於社群媒介(請參閱拙文)的關注上。相信大家或許會思考:我們能不能透過手邊的工具,簡單的方法,快速有效地存取臉書的資料?

目前有關網路資料擷取,PythonR語言可說是兩大主流;然而沒有足夠專業知識,不容易上手。Microsoft(微軟)在商務分析領域,一直沒有缺席。我在前文:【免費程式:Microsoft Power Query for Excel,學習導入資料_Open Data_大數據分析入門】當中,已經介紹了使用Microsoft Power Query for Excel,擷取政府開放資料並加以轉檔、清整的方式。以便利性、簡易性、共通性而言,相信大家對於Excel並不陌生,取得亦不困難,復以Power Query本身就是Microsoft開發用以外掛在Excel,可從事各類型資料處理的免費軟體,它不需耗時的學習、繁瑣的程序,您也可以很快地運用自如。

請至Microsoft官網點選下載:Microsoft Power Query for Excel

若您已經安裝完成,以下我將介紹如何使用Power Query(Excel 2010)擷取臉書網頁資料的方法步驟:

一、連接臉書:

(一)開啟Excel2010,點選最上方Power Query選單,進入Power Query畫面。

(二)點選上方第二層選單【從其他來源】,再點選【從Facebook】。

(三)【連接到協力廠商服務】的視窗出現,按下【確定】。

01_從Facebook匯入資料02_連接到協力廠商服務

二、登入與選取:

(一)首次使用Power Query擷取Facebook資料時,程式會要求您登入您在臉書帳號與密碼。

(二)請在【指定Facebook圖表中的物件或連接】對話框當中,輸入【Me,使用者名稱或物件識別碼】。

【特別注意】:若您擷取自己的臉書頁面資料,請依照預設值【Me】即可;若擷取對象為他人臉書資料、社團(限公開)、粉絲專頁,則需輸入【使用者名稱】或【物件識別碼】。以我個人臉書為例,頁面網址為:http://www.facebook.com/majorkang.tw,【majorkang.tw】即為我的臉書【使用者名稱】,以此類推。

(三)點選【連接】下拉選單,選擇您想要擷取的臉書資料項目,例如貼文、朋友名單、讚……。完成後請按【確定】。

(四)等待片刻,新視窗【查詢編輯器】將自動跳出,若擷取資料的帳號連結成功,會出現臉書資料的表格,包括貼文內容、按讚數、貼文時間、留言內容、留言者……等。

【特別注意】:擷取自己臉書資料,程式不會限制資料筆數;若擷取他人帳號、社團、粉絲專頁等頁面,會遇到系統自動限制擷取資料筆數的【錯誤畫面】,將無法擷取資料。如何排除?別急!底下會有說明。

03_指定Facebook圖表中的物件或連接04_查詢編輯器出現

三、展開與轉存:

(一)如果登入與連結成功,在【查詢編輯器】所出現的臉書資料表格,並非全部資料,而是以資料預視的狀態呈現的。此時,您可以依據需求,點選各欄位旁的小圖示,將表格展開。點選小圖示後,會出現勾選項目的選單,您可以按照個人需求,或是直接全選(預設),按【確定】後,原本隱藏的欄位即可展開。

(二)每展開一個欄位,右邊【查詢設定】欄下方的【套用的步驟】會顯示新展開的欄位。如果覺得欄位展開錯了,或覺得不需要展開如此多的欄位,您可點選"ㄨ",即可恢復前一個動作,即收攏您先前展開的欄位。

(三)在【查詢設定】內的資料欄位,都已處理完成後,請點選【關閉並載入】。

05_依照需求點選展開圖示展開隱藏的表格07_共載入2357筆資料(5個錯誤)

(四)此時,原先在【查詢設定】的資料預視模式,將轉為一般Excel的表格模式,依據臉書帳號頁面的資料量,您將會等待一段擷取資料的時間(我的臉書頁面共擷取2300多條資料,約等候15分鐘,如果您的電腦效能好,可縮短一些,例如我用另一部電腦則可縮短至10分鐘左右)。

(五)資料擷取完成後,您可另存新檔,大功告成!這筆資料即可隨時處理運用。

09_另存新檔大功告成

【補充說明】:遭遇資料筆數限制與時間軸區間選取的修正語法

前面提到,當您擷取自己的臉書資料,程式不會預設下載資料筆數;也就是說,從您開設帳號以來的所有資料都可以擷取下載。但如果是別人的帳號、社團(限公開)、粉絲專頁,就會有資料下載筆數的限制,造成錯誤畫面出現而無法擷取下載。我以【洪秀柱粉絲專頁】(使用者名稱:ChuChuPepper)為例:

一、程序同前述,在輸入【使用者名稱】與選取【貼文】後,出現了貼文資料限制250筆(posts?limit=250)的錯誤畫面。

10_輸入洪秀柱臉書使用者名稱點選貼文11_貼文資料上限250則錯誤畫面

二、請在語法函數的欄位處,將原本的函數:

Facebook.Graph(“https://graph.facebook.com/v2.2/ChuChuPepper/posts?limit=250“)

更改為:Facebook.Graph(“https://graph.facebook.com/v2.2/ChuChuPepper/feed“)

三、按下enter,程式即重新連接帳號,片刻後【查詢編輯器】即出現資料欄位預視,資料擷取成功!

12_postslimit=250更改為feed按enter13_查詢編輯器出現洪秀柱粉專資料擷取成功

四、同場加映–擷取最近若干筆數、特定時間軸資料語法:

(一)同理可得,若您想擷取任何帳號的最近250筆資料(程式預設不可大於250),語法為:

feed?limit=250

(二)若您想擷取今年8月23日到8月24日的資料,語法為:

feed?since=2015-08-23&until=2015-08-24

(三)若您想擷取今年8月23日到8月24日的前250筆資料,語法為:

feed?limit=250&since=2015-08-23&until=2015-08-24

看到這裡,是不是很簡單呢?感覺遙不可及的【大數據】,其實也可以透過隨手可得的工具,加以蒐集與分析。

無可避免的,蒐集社群媒介的資料,尤其運用這些資料時,必須要遵守隱私權與著作權等方面的規範。社群媒介是當前人類社會最重要,也最頻繁使用的傳播媒體,本文的初衷以及終極願望,乃期待社群媒介能為人類帶來更多福祉,絕非濫用與亂象。希望大家經由本文,能夠快速、輕鬆的接近和體驗【大數據】的領域!

#Power Query #Office #Excel #facebook #social media #data #Open Data #Microsoft #freeware #big data #JSON #CSV #臉書 #臉書經營 #社群媒介 #社交媒介 #社群巨量資料 #社群大數據 #資料採礦 #資料擷取 #臉書頁面 #微軟 #大數據 #開放資料 #政府開放資料 #商務分析

對「臉書經營:使用Microsoft Power Query for Excel擷取Facebook頁面資料_社群大數據_社群巨量資料」的想法

    • 哈囉!不知您是輸入臉書的使用者名稱?還是識別碼?如果是自己的帳號輸入me即可,若為他人帳號則需使用者名稱或識別碼(數字)。或您直接輸入臉書帳號名稱,例如朱立倫、蔡英文、宋楚瑜…等,系統也會協助您進行搜尋到指定的帳號,至於您遇到的問題,因為沒有看到您所顯示的訊息,所以我目前還不是很了解您的實際狀況。至於有關下載資料筆數的限制,本文有使用語法更改預設值250筆的方法,一併也請您參考。

  1. 我是照您教的輸入ChuChuPepper到“一、程序同前述,在輸入【使用者名稱】與選取【貼文】後,出現了貼文資料限制250筆(posts?limit=250)的錯誤畫面。” 這一段說明的欄位,可是輸入之後無法出現這一段的右邊的圖,反而出現錯誤畫面,請問是哪邊出問題嗎?還是可以用電子郵件或其他方式請教您?

    • 哈囉!您的情形有可能是函數錯誤或資料量龐大,錯誤的狀況如下:
      一、您直接轉貼本文的函數:
      您在輸入函數時,請不要直接複製本文的函數貼上,因為臉書的graph版本有可能隨時更換,例如v2.2改為v2.3,使用舊版可能會有問題,請參照本文自行檢查函數是否有錯誤。
      二、洪秀柱臉書的資料量龐大:
      前述本文已經提供更改預設250筆上限的方法,就是將函數最後一段的地方更改為feed,理論上應該是可以抓取臉書帳號從創立到最新的所有資料。然而我也不確定您的狀況是否因為資料真的太過於龐大,建議您使用抓取特定時間的函數語法試試看,本文亦有教學,如果成功,就是因為資料量過於龐大的原因了。若因如此,這個狀況目前我還沒有解決方法,還必須向使用社群提問,看看其他高手有無解決方案了。

      您若需要進一步討論,請至作者介紹處,那裏有我的聯絡方式,謝謝您。

    • 哈囉!如果您所定義的文章瀏覽人數僅是【看過】,而沒有進一步的按讚、留言、分享,那麼Power Query所擷取的資料就沒有【瀏覽人數】了。文章的瀏覽人數可以用點閱數來代替,分析網頁文章點閱人數最常用的,就是Google的附加功能Google Analytics(簡稱GA),您可上去官網看看能否應用在您的環境。

    • 哈囉Addnice!按照臉書API目前開放的權限,僅能擷取粉絲專頁,其他如:他人帳號、社團(公開或不公開),均無法透過程式擷取,這也是臉書一再被詬病隱私保護不彰的改善作法了。

    • 哈囉!ik,不知您使用於抓取資料的臉書AP是否還是v2.2?若是,這個版本臉書已經不使用了,建議您修正為新版本,語法如我另一篇Microsoft Power BI文章:

      不過,臉書API同意授權抓取資料的項目也是會有變化,過去可抓取的項目很多,近年逐次減少。

  2. 您好,

    在查詢設定內跑出我需要的粉絲專頁資料後,
    我想要得到按讚數,
    所以我在like那欄點選"彙總"id的計數,
    結果一直都沒有結果跑出來(跑了4小時了),
    想請問這樣是正常的嗎?

    因為像分享數就很容易可以獲得,
    想請問是否有其他簡單的方法可以獲得按讚數?

    • 哈囉!LAI您好,不好意思,一時疏忽,遲至今日才回覆。
      一、您若抓取的資料時間越長,所需的時間可能就越多,我也有曾經花費三四個小時的紀錄。
      二、在查詢編輯器階段,當您點開隱藏的欄位時,請試試看不要將所有的選項都打勾,僅需要的才勾選,因為勾選的選項越多,就越花時間。
      三、Microsoft Power Query已是較舊的產品,目前臉書的API已經更新至v3.0,但本文寫作時所應用的版本仍是v2.2,目前這個版本(v2.2)早已被臉書移除了。建議您連同公式修正為新版本,或使用較新的Microsoft Power BI,詳情如我在本站的另一篇文章:
      https://kangliping.wordpress.com/2017/06/04/microsoft-power-bi_facebook/

  3. 您好:
    感謝您對於此功能的介紹,我想請教使用此方法擷取FB資料,有沒有辦法取得打卡的座標(位置)資訊?
    目前看到很多的分享都是取得貼文內容或是其他個人資料,如果是打卡位置呢?
    感謝您

    • 哈囉KZ您好,很可惜,臉書所提供的API權限並未包括可以取得打卡座標的資料,而且自從今年三月【劍橋分析(Cambridge Analytica)】遭控在臉書不當蒐集個資事件爆發後,目前臉書對於API的取得管控更加嚴格了,簡單來說,一般個人用戶先前已申請的API權限,現在通通要經過臉書審查核可後,才能繼續使用,目前未通過審查者,僅能蒐集自己帳號的資料,或是自己管理的粉絲團,其他例如別人的粉絲團,已經無法蒐集到完整資料了,提供您參考。

發表留言

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料