2

如何使用 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 调用?

提前致谢!

4

3 回答 3

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

希望有帮助。

于 2013-03-15T22:29:12.307 回答
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
于 2014-03-03T15:24:56.707 回答
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()
于 2014-03-03T15:28:29.897 回答