繁体   English   中英

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

[英]Retweeting only tweets with media with tweepy in python

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

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

要检查推文是否附加了媒体,您可以使用实体 object。 您将访问实体 object,然后检查其下是否有“媒体”键。 当您收到推文时,您可以尝试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

Here's the docs on the Twitter API's entities object: https://developer.twitter.com/en/docs/twitter-api/v1/data-dictionary/object-model/entities#entitiesobject

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM