【问题标题】:How to extract screen_name from a tweet and use that to get all the past favorites of that user?如何从推文中提取 screen_name 并使用它来获取该用户过去的所有收藏夹?
【发布时间】:2019-11-27 01:58:49
【问题描述】:

我想搜索推文,从状态中提取 screen_name 并使用它来获取该 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:Status object has no attribute 'screen_name'

【问题讨论】:

    标签: python twitter tweepy


    【解决方案1】:

    无需浪费另一个 API 调用, 您可以从内部数据元素(即 author )中获取它,也可以从它的 json 中获取它,如下所示:

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

    【讨论】:

      【解决方案2】:

      试试这个:

      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,然后用它来获取网名。

      【讨论】:

      • 倒数第二行的推文是什么?
      • 它在代码的第三行抛出错误“状态”对象没有属性“from_user_id”(忽略推文是什么之后)。我想我们必须做类似 i.entities.SomethingToExtractScreenName 的事情。
      • @AbhishekSharma 修改了代码。可以再试一次吗?
      • i.from_user_id 抛出错误 'Status' 对象没有属性 'from_user_id'。代码的第 3 行。
      【解决方案3】:

      你必须这样做: i.user.screen_name

      【讨论】:

        猜你喜欢
        • 2012-05-29
        • 1970-01-01
        • 2014-10-26
        • 2018-09-10
        • 1970-01-01
        • 2017-10-04
        • 1970-01-01
        • 2013-01-28
        • 2011-05-21
        相关资源
        最近更新 更多