我一直在尝试使用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)
谢谢!
答案 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出于隐私原因而实施的限制。