如何使用tweepy流式传输指定用户的推文(仅在该用户发布该推文时流式传输)

时间:2019-08-23 23:07:59

标签: python twitter stream tweepy

我尝试了以下代码:

    class MyListener(StreamListener):
        def on_data(self, data):
            print(data)
            return True

    listener = MyListener()
    auth = OAuthHandler(config.API_KEY, config.API_SECRET)
    auth.set_access_token(config.ACCESS_TOKEN, config.ACCESS_TOKEN_SECRET)
    stream = Stream(auth, listener)
    stream.filter(follow=['<user_id>'])  # assume this user is a celebrity

在运行此代码时,我得到的是很多垃圾邮件推文或其他用户的推文。 (假设<user id>是名人,拥有数百万的关注者。关注者一直在分享推文)


但是我想流播此特定only发布的<user id>的原始推文。我该如何实施?预先感谢。

1 个答案:

答案 0 :(得分:2)

official documentation表示,使用follow参数可获得:

  • 用户创建的推文。
  • 由用户转发的推文。
  • 回复用户创建的任何推文。
  • 由用户创建的任何推文的推文。
  • 手动回复,无需按回复按钮即可创建(例如“我同意@twitterapi”)。

因此,您只需要跳过指定用户未发布的推文:

def on_status(self, status):
    if status.user.id_str != '<user_id>':
        return
    print(status.text)