Blog นี้ดองไว้นานเหมือนกัน ขึ้นโครงไปเรื่อยๆ ค่อยเติมมาเกือบเดือน ถึงเสร็จครับ มาเขียน Blog เก็บไว้ เพราะผมงงครับ 55555 กับวิชา SNA ครับ ติดมาอยู่ 2 Week และก็ไม่มีเวลามาหาว่าผิดตรงไหน การบ้านท่วมตัวครับ เข้าเรื่องกันดีกว่าครับ
สิ่งที่ต้องมี
- Python - ผมใช้ Python 3 ครับ
- Editor - ผมใช้ VSCode (จริงๆ ใช้ Jupyter ใน Anaconda ก็ได้นะครับ ครบครันดี)
- Internet - เอาไว้เก็บข้อมูลจาก Social
เก็บข้อมูล
- ลองเล่น Graph API ของ Facebook กันก่อนครับ
- มัน Powerful มากเลยครับ สามารถลอง Query แบบต่างๆได้เลย
- หลังจากเล่นมาสักพักและ ลองกำหนดโจทย์กันดีกว่าครับ
- Code Python ที่เขียนครับ (อันนี้ปรับมาจาก Code ตัวอย่างของ อ สุกรีครับ Blog รายวิชา SNA)
import requests import json ACCESS_TOKEN = 'Your Token' base_url = 'https://graph.facebook.com/v2.10/CH3Thailand' #เปลี่ยน URL จาก ME ไปเป็น อย่างอื่นก็ได้ เช่น workpointTV fields = 'posts{created_time,likes{name}}' url = '%s?fields=%s&access_token=%s' % (base_url,fields,ACCESS_TOKEN) content = requests.get(url).json() list_of_like = [] list_of_feed = [f for f in content['posts']['data']] try: while True: for f in list_of_feed: print(f['created_time']) if 'likes' in f: list_of_like += [(ll['id'],f['id']) for ll in f['likes']['data']] f_content = {} f_content['paging'] = {'next':''} if 'next' in f['likes']['paging']: url = f['likes']['paging']['next'] else: url = '' while url != '': print('Getting next likes of '+f['id']) f_content = requests.get(url).json() list_of_like += [(ll['id'],f['id']) for ll in f_content['data']] if 'next' not in f_content['paging']: url = '' else: url = f_content['paging']['next'] print(url) if 'posts' in content: if 'paging' not in content['posts'] or 'next' not in content['posts']['paging']: break; url = content['posts']['paging']['next'] elif 'data' in content: #if 'next' not in content['paging']: if len(content['data']) == 0 or 'next' not in content['paging']: break url = content['paging']['next'] print('Getting next feed') content = requests.get(url).json() list_of_feed = [f for f in content['data']] except Exception as ex: print(ex.message) finally: f=open('all_likes_CH3Thailand','w') for t in list_of_like: f.write(t[0]+','+t[1]+'\n') f.close()
- โดย Code ชุดนี้ มันเก็บข้อมูลเก็บ csv มี 2 Column นะครับ ที่ทำแบบนี้ เพราะ เอาไป Visualize Data ผ่านตัว Gephi
- อ๋อ และก็อย่าลืมเติมหัว Column เป็น Source กับ Target ตามรูปนะครับ
มาลอง Visualize กัน
- เปิด Gephi >> New Project โลดด
- เลือก Import Spreadsheet
- เอาไฟล์ที่ได้จากขั้นตอนที่แล้วมาใส่ครับ อย่าลืมดูว่าเป็น Edges Table ครับ
- มาที่ Overview Conifg ตามรูปเลยครับ โดยในครั้งนี้เลือกเอา Algorithm OpenOrd มา Visulize Data ครับ
- ผลลัพธ์ตอน Preview
Discover more from naiwaen@DebuggingSoft
Subscribe to get the latest posts sent to your email.