如何从推文中提取screen_name并使用它来获取该用户的所有过去的收藏?

时间:2014-09-04 19:33:08

标签: python twitter tweepy

我想搜索推文,从状态中提取screen_name并使用它来获取该screen_name的过去最喜欢的推文。现在我不知道如何从状态中提取screen_names,然后知道如何使用以获取过去的收藏夹。这是我的代码(问题出在最后一行):

import tweepy
consumer_key = ''
consumer_secret = ''
access_token = '' 
access_secret = ''
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_secret)
api = tweepy.API(auth)
search_results = tweepy.Cursor(api.search,q="Ganesh World").items()

for i in search_results:
    print i.text.encode('utf-8')
    print   api.favorites([i.screen_name])

抛出AttributeError:Status对象没有属性'screen_name'

3 个答案:

答案 0 :(得分:2)

无需浪费其他API调用, 您可以从内部数据元素(即来自作者)获取它,并从其json中获取它,如下所示:

for i in search_results:
    print i.author._json['screen_name']

答案 1 :(得分:0)

试试这个:

for i in search_results:
    print i.text.encode('utf-8')
    user_details = api.get_user(user_id = i.from_user_id)    
    print api.favorites([user_details.screen_name])

您正试图直接从推文中获取screen_name。首先,您应该获得id,然后使用它来获取屏幕名称。

答案 2 :(得分:0)

您必须执行以下操作:     i.user.screen_name