2014-11-07 12 views
9

Utilizzo di tweepy Sono in grado di restituire tutti i miei amici utilizzando un cursore. È possibile specificare un altro utente e ottenere tutti i loro amici?Ottieni tutti gli amici di un determinato utente su Twitter con tweepy

user = api.get_user('myTwitter') 
print "Retreiving friends for", user.screen_name 
for friend in tweepy.Cursor(api.friends).items(): 
print "\n", friend.screen_name 

che stampa un elenco di tutti i miei amici, se cambio la prima linea ad un altro utente di Twitter restituisce ancora i miei amici. Come posso ottenere amici per ogni utente che utilizza tweepy?

#first line is changed to 
user = api.get_user('otherUsername') #still returns my friends 

Inoltre user.screen_name quando vengono stampati WILL ritorno otherUsername

La domanda Get All Follower IDs in Twitter by Tweepy fa essenzialmente quello che sto cercando tuttavia restituisce solo un conteggio di ID di. Se rimuovo la funzione len(), sarà possibile scorrere un elenco di ID utente, ma è possibile ottenere i nomi delle schermate @twitter, @stackoverflow, @etc.....?

+0

possibile duplicato del [Get All Follower ID twitter per Tweepy] (http://stackoverflow.com/questions/17431807/get-all-follower-ids-in-twitter-by-tweepy). La variabile 'ids' nella risposta accettata contiene tutti gli ID, il rispondente ne stampa la lunghezza ma puoi fare quello che vuoi con esso. – Luigi

+0

Non credo che questa sia una domanda doppia, sto cercando gli handle di Twitter o 'screen_name', non gli ID che è ciò che viene restituito nella domanda l'ho incluso nella domanda stessa come riferimento poiché il mio codice è essenzialmente il stesso – user2497792

+0

Grazie per la modifica chiarificatrice. – Luigi

risposta

15

È possibile utilizzare la variabile ids dal answer si fa riferimento in altra risposta per ottenere il l'id dei seguaci di una determinata persona, ed estenderlo per ottenere i nomi di schermo di tutti i seguaci, utilizzando il metodo Tweepy api.lookup_users:

import time 
import tweepy 

auth = tweepy.OAuthHandler(..., ...) 
auth.set_access_token(..., ...) 

api = tweepy.API(auth) 

ids = [] 
for page in tweepy.Cursor(api.followers_ids, screen_name="McDonalds").pages(): 
    ids.extend(page) 
    time.sleep(60) 

screen_names = [user.screen_name for user in api.lookup_users(user_ids=ids)] 
+3

Questa soluzione ha fatto quello che stavo cercando. – user2497792

+0

ottengo questo errore quando provo questo, qualcuno sa se qualcosa è cambiato? grazie tweepy.error.TweepError: [{u'message ': u'Troppi termini specificati in query.', u'code ': 18}] – 10mjg

Problemi correlati