【问题标题】:How to follow someone on Twitter using tweepy/Python?如何使用 tweepy/Python 在 Twitter 上关注某人?
【发布时间】:2019-11-19 06:25:42
【问题描述】:

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

【问题讨论】:

  • 这可能有助于澄清它到底在关注谁。
  • 它似乎关注那些转发了我所拥有的相同内容的人。
  • 另外,添加 tweet.user.follow() 也不起作用。
  • 对我来说,这似乎 API 返回原始推文和转推。我不熟悉这个特定的 API,但我建议尝试仅过滤原始推文。

标签: python python-3.x tweepy


【解决方案1】:

Alan 关于这个问题的 cmets 确实是正确的,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)

将以上内容添加到您的代码中应该可以让您关注原作者。

就个人而言,我更喜欢过滤选项,但这取决于您。希望其中之一有所帮助。

【讨论】:

    猜你喜欢
    • 2013-12-22
    • 2018-11-09
    • 1970-01-01
    • 2020-10-02
    • 1970-01-01
    • 2020-09-29
    • 1970-01-01
    • 1970-01-01
    • 2012-01-17
    相关资源
    最近更新 更多