Python:检查Twitter用户A是否跟随用户B.

时间:2016-10-01 02:36:31

标签: python twitter tweepy twython

我一直在尝试使用Tweety或Twython与Twitter API搜索特定的主题标签,提取使用该主题进行推文的用户的用户名,然后查看其中有多少用户互相关注。我的最终目标是使用NetworkX可视化连接。

到目前为止,我已经能够搜索主题标签,并获得用户发推文的用户列表。但是,我无法弄清楚如何查看谁在该名单上关注谁。我终于找到了友情查询,但后来意识到该参数只搜索经过身份验证的用户(我)的朋友。

以下是该代码的最新版本:

from twython import Twython
import tweepy

# fill these in from Twitter API Dev
CONSUMER_KEY = ''
CONSUMER_SECRET = ''
ACCESS_KEY = ''
ACCESS_SECRET = ''

auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_KEY, ACCESS_SECRET)
api = tweepy.API(auth, wait_on_rate_limit=True)

twitter = Twython(CONSUMER_KEY, CONSUMER_SECRET, ACCESS_KEY, ACCESS_SECRET)

# Search for hashtag, limit number of users
try:
    search_results = twitter.search(q='energy', count=5)
except TwythonError as e:
    print e

test5 = []
for tweet in search_results['statuses']:
    if tweet['user']['screen_name'] not in test5:
        test5.append((tweet['user']['screen_name']).encode('utf-8'))
print test5

# Lookup friendships
relationships = api.lookup_friendships(screen_names=test5[0:5])
for relationship in relationships:
    if relationship.is_following:
        print("User is following", relationship.screen_name)

谢谢!

1 个答案:

答案 0 :(得分:1)

使用Tweepy,您可以使用API.exists_friendship方法检查user_a后跟user_b。代码看起来像:

auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_KEY, ACCESS_SECRET)
api = tweepy.API(auth, wait_on_rate_limit=True)
is_following = api.exists_friendship(user_a, user_b)

您可以按ID或屏幕名称指定用户。

或者,您可以使用API.followers_ids方法获取整个关注者列表:

auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_KEY, ACCESS_SECRET)
api = tweepy.API(auth, wait_on_rate_limit=True)
user_b_followers = api.followers_ids(user_b)
is_following = user_a in user_b_followers

这种方法对大型用户网络更有意义。

请注意,对于这两种方法,您只能看到经过身份验证的用户可以看到的友谊。这是Twitter出于隐私原因而实施的限制。