【问题标题】:Retweeting only tweets with media with tweepy in python在 python 中只转发带有 tweepy 的媒体的推文
【发布时间】:2021-03-19 21:35:48
【问题描述】:

最近我一直在努力开发一个机器人。但我因为只转发媒体推文而不转发文本而陷入困境。那么有没有办法过滤掉它们呢? 这是我喜欢和转发的代码部分。

for tweet in tweepy.Cursor(api.search, search).items(nrTweets):
try:
    i += 1
    print(str(i) + '. Tweet Liked')
    tweet.favorite()
    time.sleep(30)
    print(str(i) + '. Retweeted')
    tweet.retweet()
    os.system('cls')
except tweepy.TweepError as e:
    print(e.reason)
except StopIteration:
    break

【问题讨论】:

    标签: python twitter bots tweepy


    【解决方案1】:

    要检查推文是否附加了媒体,您可以使用实体对象。您将访问实体对象,然后检查其下是否有“媒体”键。当你收到推文时,你可以试试tweet.entities["media"]。如果有媒体附有推文,它会返回有关媒体的信息,如果没有,它会抛出一个 KeyError。

    对于您的场景,您可以将 tweet.entities["media"] 放在您的 try 语句下,这样如果没有发生错误,则表示媒体确实存在,您可以继续喜欢/转发该推文。对于 KeyError,您应该添加另一个捕获错误的 except 语句以跳过喜欢/转发该推文。

    try:
        media = tweet.entities["media"]
        # like & retweet the tweet
    except KeyError:
        print("Skipping tweet -- no media.")
    # your other except statements
    

    这里是关于 Twitter API 实体对象的文档:https://developer.twitter.com/en/docs/twitter-api/v1/data-dictionary/object-model/entities#entitiesobject

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-06-11
      • 2017-07-31
      • 1970-01-01
      • 2019-07-03
      • 1970-01-01
      • 2015-06-20
      • 2018-06-05
      • 1970-01-01
      相关资源
      最近更新 更多