获取转发的用户名?

时间:2013-03-15 19:31:47

标签: python python-twitter

如何使用Python-Twitter从我的时间轴查看每个转发的用户名?到目前为止,这是我没有重新推文用户名的时间线:

import twitter
api = twitter.Api(xxxxxx)
statuses = api.GetUserTimeline('username', include_rts=True)
for tweet in statuses:
    print tweet

我认为您将使用的方法是GetTweets,它需要一个statusID,我不确定如何将状态ID从时间轴调用传递给GetRetweets调用?

提前致谢!

3 个答案:

答案 0 :(得分:1)

试试这个:

import twitter

t = twitter.Api(...)

statuses = t.GetUserTimeline('username', include_rts=True)

for tweet in statuses:
    retweets = t.GetRetweets(tweet.GetId())
    users = [retweet.GetUser().GetScreenName() for retweet in retweets]
    print tweet.GetId(), users

希望有所帮助。

答案 1 :(得分:0)

我想添加@ alecxe的答案,但有评论我不能粘贴很多代码。在我的应用程序中,我发现在获得转发之前检查推文是否有转发是有用的。这在API配额方面节省了一点。我修改了@ alecxe的代码以满足我的需求:

import twitter, json

t = twitter.Api(...)

statuses = t.GetUserTimeline('username', include_rts=True)

for tweet in statuses:
    json_tweet = json.loads(str(tweet))

    rts = 0
    try:
        rts = json_tweet['retweet_count']
    except:
        rts = 0

        if rts > 0:
            retweets = t.GetRetweets(tweet.GetId())
            users = [retweet.GetUser().GetScreenName() for retweet in retweets]
            print tweet.GetId(), users

答案 2 :(得分:0)

或者你也可以尝试一下。

import twitter

t = twitter.Api(...)

statuses = t.GetUserTimeline('username', include_rts=True)

for tweet in statuses:
    retweets = t.GetRetweets(tweet.GetId())
    users = [retweet.GetUser().GetScreenName() for retweet in retweets]
    print tweet.GetId(), users
    print tweet.GetRetweets()