python - 如何使用 tweepy/Python 在 Twitter 上关注某人?

标签 python python-3.x tweepy

我正在尝试使用 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/

相关文章:

python - 名称错误 : global name 'numpy' is not defined

python - 来自推文的用户地理位置坐标

python - 在 openpyxl 中使用多种数字格式和名称样式

Python - 一次性ifs

Python:字典键值对 Pandas 值的平均值

python - 随着主窗口大小的调整而调整 QDialog 的大小

python - 如何转换为 Python 列表理解

python - 如何使用 tweepy 中的图像 url 更新带有图像的 Twitter 状态?

Python tweepy : find users who favorited you tweet given tweet ID

python - 无法结束多 if 语句以捕获所有