【问题标题】:tweepy: finding the original author of a retweettweepy:查找转推的原作者
【发布时间】:2015-01-21 15:22:33
【问题描述】:

我是一个 python 新手,在这里坚持使用 tweepy。

我要做的是将一堆用户和推文对象引入具有推文和转推关系的 neo4j 数据库。我的问题是确定给定的状态对象是否是转推,如果是,则确定原作者的 screen_name 和 id_str。

如果我打印出 tweet.retweets,我可以看到数据,但我不知道如何获得它。 tweepy 的文档中提到了一些关于对象模型的内容,有关更多信息,请查看 ModelsReference,但 google 在这里帮不上什么忙。

任何帮助都会很棒,即使只是为我指明正确的方向。谢谢

示例代码

tweets=api.get_timeling(1234556)
twitter_user=api.get_user(123456)
for tweet in tweets:
    neo4j_create_tweet_node(tweet)
    if tweet.user.id == twitter_user.id:
        create_tweet_relationship(twitter_user,tweet)
    elif tweet.user.id != twitter_user.id:
        create_retweet_relationship(twitter_user,tweet)

【问题讨论】:

    标签: python twitter tweepy


    【解决方案1】:

    假设推文是转推, originalAuthorID = tweet.retweeted_status.user.id_str;

    【讨论】:

      【解决方案2】:

      根据Twitter API documentation

      转推可以通过retweeted_status 属性的存在与典型的推文区分开来。此属性包含被转发的原始推文的表示。请注意,转发的转发不显示中间转发的表示,而仅显示原始推文。

      我会使用 hasattr() 来查找每个 Tweetpy 推文对象中是否存在 retweeted_status 属性。

      以下代码(其中create_tweet_relationship()create_retweet_relationship() 是您在示例中定义的函数)似乎应该可以工作:

      for tweet in tweets:
          if hasattr(tweet, 'retweeted_status'):
               create_tweet_relationship(tweet.retweeted_status.author, tweet)
          else:
               create_retweet_relationship(tweet.author, tweet)
      

      【讨论】:

        【解决方案3】:

        如果推文是另一个推文的转推,则原始转推状态包含在 JSON 对象中的“retweeted_status”字段中。您将在“用户”字段下获得用户信息。

        【讨论】:

          猜你喜欢
          • 2021-07-25
          • 2018-10-07
          • 2022-07-05
          • 1970-01-01
          • 2018-06-24
          • 2020-09-02
          • 2016-12-16
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多