如果在進行競網分析時需要取得大量粉絲專頁的資料,或是想要利用粉絲專頁的貼文內容進行文字探勘,那麼該如何爬取呢?
這篇文章教你簡單利用 R 語言,不用花費 3 分鐘時間就可以爬取逾百個粉絲專頁、近萬則貼文內容!
R 程式碼:
#第一次使用前先安裝套件
install.packages("Rfacebook")
#呼叫使用套件
library(Rfacebook)
#從此取得token: https://developers.facebook.com/tools/explorer
token <- br="" token="">
#取得某粉絲專頁之基本資訊
#從此取得某一粉絲專頁的id: https://lookup-id.com/ 或 http://findmyfbid.com/
fanpage1 <- getusers="" id="" private_info="FALSE)<br" token="">
#秀出所有取得資料
fanpage1
#取得某一段時間(從since到until)某粉絲專頁之貼文,未設定n則預設取25,n太大可能會抓不到某些粉專的資料
#從此取得某一粉絲專頁的id:https://lookup-id.com/
fb_page1 <- getpage="" n="篇數)<br" page="粉絲專頁的id" since="2016/01/01" token="" until="2017/02/28">
#顯示期間內之所有貼文資訊
fb_page1
#把結果輸出成csv檔,利用逗號為分隔符號,檔名為fanpage_results
write.table(fb_page1, file = "fanpage_results.CSV", sep = ",") #第一次建立CSV檔
write.table(fb_pageN, file = "fanpage_results.CSV", sep = ",", col.names = FALSE, append = TRUE) #把其他粉絲專頁的資料寫入同一個CSV檔
#用此找到當前的工作目錄,可找到上面輸出的fanpage_result.CSV檔案存在哪裡
getwd()
->->->
輸出 CSV 檔案之後,請務必檢查輸出資料欄位是否皆正確無誤。實際測試發現少部分資料列的欄位會跑掉,可能是因為原貼文內使用了特殊字元反斜線「\」(back-slash)導致寫入 CSV 檔時遭到誤判。
另外,如果想要同時抓取多個粉絲專頁的資料,那麼可以預先準備好批次的程式碼,再一次複製到 R 語言的執行環境中執行即可。例如:
#抓取資料
fb_page_1 <- getpage="" n="50)<br" page="117327775035616" since="2016/08/01" token="" until="2017/02/28">
fb_page_2 <- getpage="" n="50)<br" page="215856161958" since="2016/08/01" token="" until="2017/02/28">
fb_page_3 <- getpage="" n="50)<br" page="642311172517502" since="2016/08/01" token="" until="2017/02/28">
fb_page_4 <- getpage="" n="50)<br" page="1049259508445930" since="2016/08/01" token="" until="2017/02/28">
#......
fb_page_100 <- getpage="" n="50)<br" page="151997411535137" since="2016/08/01" token="" until="2017/02/28">
->->->->->
#寫入CSV檔
write.table(fb_page_1, file = "fanpage_results_Y.CSV", sep = ",")
write.table(fb_page_2, file = "fanpage_results_Y.CSV", sep = ",", col.names = FALSE, append = TRUE)
write.table(fb_page_3, file = "fanpage_results_Y.CSV", sep = ",", col.names = FALSE, append = TRUE)
write.table(fb_page_4, file = "fanpage_results_Y.CSV", sep = ",", col.names = FALSE, append = TRUE)
#......
write.table(fb_page_100, file = "fanpage_results_Y.CSV", sep = ",", col.names = FALSE, append = TRUE)
但欲使用批次處理,前置作業就要花費多一些時間,包括:取得各粉絲專頁的 ID(
沒有留言:
張貼留言