2015年11月27日 星期五

[Python] FB Crawler - 文字雲

前陣子 FB 很紅的應用程式 - 分析2015最常使用的文字

某天看到 FB 有人在分享如何自己也寫一個類似的軟體

這邊記錄一下

資料來源: part1part2part3 (大數軟體有限公司)


1. 先到 FB developer


2. 選擇 Tools & Support 下的 Graph API Explorer



3. 進去後,選擇 Get Token 下的 Get User Access Token


4. (1) 先 clear

   (2) 選 user_posts

   (3) 按下 Get Access Token


5. 會跳出頁面要你授權,按下確定即可


6. 出來之後,把下列紅框處改成以下內容

   這邊說明一下 since 後面接的是 1970年1月1號開始起算的秒數

   因為是要看2015年,所以這邊必須算出 1970/01/01 到 2015/01/01 總共過了幾秒

   怎麼得出這個值,下個步驟會說明

   而 limit 這個值是在說,每次傳回的文章的上限,這邊設成 100,一次拿多一點加快速度


7. 要如何算出秒數呢? 到這個 EpochConverter 網站

   輸入要的時間,也就是 2015/01/01 0:0:0,然後按下紅框處 1

   紅框處 2 就會出現想要的秒數了

8. 用 python 寫下以下程式碼


   TOKEN 就是在步驟 4 完成後會拿到的 token,複製貼上就好
 

   然後在執行之前,必須要先安裝兩個 module

   pip install requests  =>  http request 用

   pip install jieba  =>  切字串用

  最後說明一下紅框處的部分,因為是在 windows 的環境

  cmd 這個 console 是用 cp950 編碼,但從 FB 拿到的字串會是 utf-8 編碼

  所以用一個很迂迴的方式想辦法輸出結果

  只能說萬惡 M$

9. 運行的結果會如下


10. 接下來用一個軟體叫 tableau 來幫忙做圖形化表示

    到tableau這個網站,在紅框處輸入 email 後就可以下載 (免費版本,有限制輸入資料量)

   下載之後安裝並開啟 (第一次安裝會直接開啟)

   停在開啟後的頁面


   把剛剛程式輸出的文字和頻率的結果,複製貼上來 (就直接在這個頁面貼上)

   然後就會到這個畫面
    

11. 接下來點選右上方的 Show Me,然後選擇 bubbles


    就會看到圖形化的資料


12. 接下來把它改成文字雲的型態,而不是 bubbles

    把左手邊的 F2 點選拖曳加到 Marks 欄位裡面


     並增加顏色



     然後選成 text 模式


     可以按 Color 來調整顏色




13. 結果會如下



沒有留言:

張貼留言