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

1 投票
3 回答
2441 浏览
提问于 2025-04-19 21:29

我想搜索推文,从状态中提取出用户名(screen_name),然后用这个用户名去获取过去的收藏推文。不过我不知道怎么从状态中提取出用户名,也不知道怎么用它去获取过去的收藏。这是我的代码(问题出在最后一行):

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: 状态对象没有'screen_name'这个属性。

3 个回答

0

你需要这样做:
i.user.screen_name

1

试试这个:

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

没必要再浪费一次API调用了,

你可以直接从内部的数据元素中获取,比如从作者那里,然后再从它的json中这样获取:

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

撰写回答