首页 > 解决方案 > 如何使用 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>。我该如何实施?提前致谢。

标签: pythontwitterstreamtweepy

解决方案


官方文档说使用follow你得到的参数:

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

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

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

推荐阅读