我正在尝试使用 tweepy 创建一个 Twitter 机器人,它将搜索、点赞和转发任何包含“转发以输入”字样的状态更新,并且我成功了。但是,我还希望脚本能够关注创作该作品的人(我创建此脚本是为了尝试赢得比赛,并且您通常还需要关注主办比赛的帐户)。
我的脚本粘贴在下面。目前,该脚本确实会关注某人,但不是创建该推文的人。
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)
user2 = api.me()
print(user2.name)
def main():
search = ("Retweet to enter")
numberoftweets = 5
for tweet in tweepy.Cursor(api.search, search).items(numberoftweets):
try:
tweet.favorite()
tweet.retweet()
api.create_friendship(tweet.user.id)
print("Tweet Retweeted and followed")
except tweepy.TweepError as e:
print(e.reason)
except StopIteration:
break
main()
最佳答案
Alan 对这个问题的评论确实是正确的,api.search
返回转发以及原始推文。目前,对于转发,您的代码将遵循转发帐户。您可以通过以下几种方法来处理此问题:
过滤掉转发
虽然您可以获取所有推文然后过滤结果,但您会浪费宝贵的 API 调用。最好对 API 请求进行过滤。您可以通过 Twitter 的 standard operators 执行此操作。将以下内容添加到您的搜索字符串将删除所有转发
-filter:retweets
所以你的搜索是
search = "Retweet to enter -filter:retweets"
<小时/>
获取原始推文作者
也许您不想过滤掉转发。 Twitter 返回的响应仍然允许您从转发中获取原始作者。您必须检查该推文是否是转发,如果是,则应具有 retweeted_status 属性。其中包含有关原始推文的信息,包括其作者。
if tweet.retweeted:
api.create_friendship(tweet.retweeted_status.author)
将上述内容添加到您的代码中应该可以让您关注原作者。
就我个人而言,我更喜欢过滤选项,但这取决于您。希望其中之一有所帮助。
关于python - 如何使用 tweepy/Python 在 Twitter 上关注某人?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58844898/