获取转发的用户名?
我想知道如何用Python-Twitter查看我时间线上每个转发的用户名。现在我有的代码可以获取时间线,但没有转发的用户名:
import twitter
api = twitter.Api(xxxxxx)
statuses = api.GetUserTimeline('username', include_rts=True)
for tweet in statuses:
print tweet
我认为你可以用的方法是GetTweets,这个方法需要一个状态ID。我不太确定怎么把时间线调用中的状态ID传递给GetRetweets调用?
提前谢谢你!
3 个回答
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()
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
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
希望这能帮到你。