2

Python-Twitter を使用してタイムラインから各リツイートのユーザー名を表示するにはどうすればよいですか? これは、リツイートのユーザー名なしでタイムラインを戻す、これまでのところ私が持っているものです:

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

使用すると思われるメソッドは、statusID を必要とする GetTweets ですが、タイムライン呼び出しから GetRetweets 呼び出しにステータス ID を渡す方法がわかりません。

前もって感謝します!

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 に答える