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

TrW*_*236 2 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
Run Code Online (Sandbox Code Playgroud)

运行此代码时,我得到的是其他用户的许多垃圾推文或转发。(假设这<user id>是一个名人,拥有数百万粉丝。粉丝一直在分享推文)


但我想流式传输only此特定<user id>. 我该如何实施?提前致谢。

Jef*_*rod 5

官方文件说,使用follow参数您可以:

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

所以你只需要跳过不是由指定用户发布的推文:

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