首页 > 代码库 > Python 获取Facebook用户Friends的爱好类别中的Top10

Python 获取Facebook用户Friends的爱好类别中的Top10

CODE:

#!/usr/bin/python 
# -*- coding: utf-8 -*-

'''
Created on 2014-8-12
@author: guaguastd
@name: friends_popular_category.py
'''

# impot login
from login import facebook_login

# import helper
#from helper import pp

# calculating the most popular category among your friends
from prettytable import PrettyTable
from collections import Counter

# access to facebook
facebook_api = facebook_login()

# get friends like through single request
#friends_like = facebook_api.get_object('me', fields='id,name,friends.fields(id,name,likes)')
#pp(friends_like)

# get friends like through multi request
friends = facebook_api.get_connections("me", "friends")['data']
likes = { friend['name'] : facebook_api.get_connections(friend['id'], "likes")['data']
         for friend in friends[:10]}
#print 'likes:', likes

friends_likes_categories = Counter([like['category']
                        for friend in likes
                          for like in likes[friend]])

pt = PrettyTable(field_names = ['Category', 'Freq'])
pt.align['Category'], pt.align['Freq'] = 'l', 'r'
[ pt.add_row(flc) for flc in friends_likes_categories.most_common(10) ]
print 'Top 10 likes categories for friends'
print pt

RESULT:

Top 10 likes categories for friends
+--------------------------+------+
| Category                 | Freq |
+--------------------------+------+
| Community                |   47 |
| Musician/band            |   34 |
| Professional sports team |   10 |
| Artist                   |    8 |
| Public figure            |    5 |
| Athlete                  |    5 |
| Movie                    |    4 |
| Local business           |    4 |
| Actor/director           |    4 |
| App page                 |    4 |
+--------------------------+------+