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

2024-04-29 06:07:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试了以下代码:

    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>是一位名人,拥有数百万追随者。粉丝们一直在分享微博)


但是我想流式传输这个特定的<user id>发布的原始tweet。我该如何实现这一点?提前谢谢


Tags: 代码tokenauthapiidconfigdatastream
1条回答
网友
1楼 · 发布于 2024-04-29 06:07:14

official documentation表示使用follow参数可以得到:

  • 用户创建的推文
  • 用户转发的推文
  • 回复用户创建的任何Tweet
  • 转发用户创建的任何Tweet
  • 手动回复,不按回复按钮创建(例如“@twitterapi I agree”)

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

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

相关问题 更多 >