获取对特定推文的回复计数

时间:2017-09-16 14:22:22

标签: python twitter twitter4j tweepy twython

我正在使用Python tweepy库。

我成功地使用以下代码提取了一条推文的'已赞'和'重推'计数:

# Get count of handles who are following you
def get_followers_count(handle):
    user = api.get_user(handle)
    return user.followers_count

# Get count of handles that you are following
def get_friends_count(handle):
    user = api.get_user(handle)
    return user.friends_count

# Get count of tweets for a handle
def get_status_count(handle):
    user = api.get_user(handle)
    return user.statuses_count

# Get count of tweets liked by user
def get_favourite_count(handle):
    user = api.get_user(handle)
    return user.favourits_count

但是,我无法找到获取特定推文的回复计数的方法。

是否可以使用tweepy或任何其他库(如twython甚至twitter4j)获取推文的回复计数?

1 个答案:

答案 0 :(得分:1)

下面的示例代码展示了如何实施一个解决方案来查找单个推文的所有回复。它利用 Twitter 搜索运算符 to:<account> 并获取对该帐户有回复的所有推文。通过使用 since_id=tweet_id,从 api.search 返回的推文仅限于帖子创建时间之后创建的推文。获取到这些推文后,使用in_reply_to_status_id属性来检查捕获的推文是否是对感兴趣的推文的回复。

auth = tweepy.OAuthHandler(API_KEY, API_SECRET_KEY)
api = tweepy.API(auth)

user = 'MollyNagle3'
tweet_id = 1368278040300650497
t = api.search(q=f'to:{user}', since_id=tweet_id,)

replies = 0
for i in range(len(t)):

    if t[i].in_reply_to_status_id == tweet_id:
        replies += 1
print(replies)

此代码的局限性在于效率低下。它抓取了比必要更多的推文。然而,这似乎是最好的方法。此外,如果您想获得非常旧推文的回复,您可以在 api.search 中实现参数 max_id 以限制您搜索回复的时间长度。