在python中只转发带有tweepy的媒体推文



最近我一直在开发一个机器人。但我只转发媒体推文而不转发文本。那么有什么方法可以过滤掉它们吗?这是我的部分代码与点赞和转发。

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

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

对于您的场景,您可以将tweet.entities["media"]放在try语句下,因此如果没有出现错误,则意味着媒体确实存在,您可以继续点赞/转发该推文。对于KeyError,您应该添加另一个捕获错误的exception语句,以跳过点赞/转发该推文。

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

最新更新