Advertisement
Guest User

Untitled

a guest
Jun 23rd, 2018
198
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.69 KB | None | 0 0
  1. # coding: UTF-8
  2. import tweepy
  3. from collections import defaultdict
  4. import networkx as nx
  5.  
  6. #==================ツイッター認証==================
  7. #各キーをhttps://apps.twitter.com/にアクセスして取得してください
  8. CONSUMER_KEY = "ここにConsumer Key (API Key)を"
  9. CONSUMER_SECRET = "ここにConsumer Key (API Key)をConsumer Secret (API Secret)   "
  10. ACCESS_TOKEN_KEY = "ここにAccess Tokenを"
  11. ACCESS_TOKEN_SECRET = "ここにAccess Token Secret"
  12.  
  13. auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
  14. auth.set_access_token(ACCESS_TOKEN_KEY, ACCESS_TOKEN_SECRET)
  15.  
  16. api = tweepy.API(auth, wait_on_rate_limit=True)
  17.  
  18. #idに取得したいアカウントのidリストを代入
  19. #Idで指定されたユーザの全フォロワーを取得する
  20. #Id ... ユーザidでもスクリーンネームでもok
  21.  
  22. id =3288588728
  23.  
  24. def getFollowers_ids(api, id):
  25.     # Get Id list of followers
  26.     followers_ids = tweepy.Cursor(api.followers_ids, id=id, cursor=-1).items()
  27.  
  28.     followers_ids_list = []
  29.     try:
  30.         followers_ids_list = [followers_id for followers_id in followers_ids]
  31.     except tweepy.error.TweepError as e:
  32.         print(e.reason)
  33.  
  34.     return followers_ids_list
  35.  
  36.  #===============フォロワー取得   ================
  37.  
  38. center_to_followers = {}
  39. node_attrs = defaultdict(dict)
  40.  
  41. # center account: @hoge, @hogehoge @ユーザー名 を代入
  42. #ユーザーIDでも可能
  43. CENTER_ACCOUNTS = ["ikukotaryu","seisakuteigen01","mikaguramai","mynamekamikaze","mynamekamikaze1","take_off_dress","yukkuri_hosyuCH","hoshusokuhou","NewsUs1","moeruasia","netgeek_0915","hyakutanaoki","nippondaiichi","bmgs46","nikond500nps","sarutobi000"]
  44.  
  45. for center_screen_name in CENTER_ACCOUNTS:
  46.  
  47.     # get center account information (node attributes)
  48.     center_info = api.get_user(screen_name=center_screen_name)
  49.  
  50.     # get id of center account
  51.     center_id = center_info.id
  52.  
  53.     node_attrs[center_id]['screenName'] = center_screen_name
  54.     node_attrs[center_id]['followersNum'] = center_info.followers_count
  55.     #追加  
  56.     node_attrs[center_id]['followNum'] = center_info.friends_count
  57.  
  58.     center_to_followers[center_id] = getFollowers_ids(api=api, id=center_screen_name)
  59.  
  60.     # set empty value to account attribute that is not center
  61.     for follower_id in center_to_followers[center_id]:
  62.         node_attrs.setdefault(follower_id, {'screenName': '', 'followersNum': '','followsNum': '', 'followNum': ''})
  63.        
  64.        
  65. #=================NetworkXのグラフオブジェクトに変換 / gml形式で保存==============
  66.  
  67.  
  68. graph = nx.from_dict_of_lists(center_to_followers)
  69. nx.set_node_attributes(graph, node_attrs)
  70. nx.write_gml(graph, '合成結果の名前.gml')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement