Twitter 如何使用tweepy收听新推文以获得@提及?

Twitter 如何使用tweepy收听新推文以获得@提及?,twitter,tweepy,Twitter,Tweepy,我是特威比的新手。并尝试实现一个api,它可以监听新推文中的@提及或屏幕名称 tweets = api.user_timeline(screen_name=username) 但它并没有听到新的推特。你能帮我理解一下它是如何实现的吗?这样每当一条推特上出现“@title”。api应该立即侦听首先,使用获取他们的twitter用户id。 然后,使用以下命令: from tweepy import OAuthHandler from tweepy import Stream from tweepy

我是特威比的新手。并尝试实现一个api,它可以监听新推文中的@提及或屏幕名称

tweets = api.user_timeline(screen_name=username)

但它并没有听到新的推特。你能帮我理解一下它是如何实现的吗?这样每当一条推特上出现“@title”。api应该立即侦听

首先,使用获取他们的twitter用户id。
然后,使用以下命令:

from tweepy import OAuthHandler
from tweepy import Stream
from tweepy import StreamListener

listener = StreamListener()
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=['1102105048253849600']) # user ID for random account
创建StreamListener Tweepy的StreamListener的on_数据方法方便地将数据从状态传递到on_状态方法。 创建类MyStreamListener,该类继承自StreamListener并在\u状态下重写

import tweepy
重写tweepy.StreamListener以将逻辑添加到on_状态 创建流 需要一个API来流式传输用于身份验证的正确凭据。一旦有了API和状态侦听器,我们就可以创建流对象

myStreamListener = MyStreamListener()
myStream = tweepy.Stream(auth = api.auth, listener=myStreamListener)
起始流 异步流 处理错误
track=['python']将收集与'python'匹配的所有tweet。但是我需要所有包含@antify.'follow=id'的tweets将所有活动检索到用户id。我的目标是找到实时tweets。在上面的回答中,当您重写on_status函数时,有没有办法再进行一次检查以过滤tweet。请执行以下操作:
python uname=tweet.user.screen_name uname='@'+uname if uname in tweet.text:print(“使用给定的标签搜索时,此tweet中会提到用户”)
一个简单的字符串匹配。如果用户在tweet中被提及,这将打印该消息。谢谢,但如果没有此检查,我们也可以从status对象收集tweet
myStreamListener = MyStreamListener()
myStream = tweepy.Stream(auth = api.auth, listener=myStreamListener)
myStream.filter(track=['python'])

myStream.filter(follow=["2211149702"])
myStream.filter(track=['python'], is_async=True)
class MyStreamListener(tweepy.StreamListener):

    def on_error(self, status_code):
        if status_code == 420:
            #returning False in on_error disconnects the stream
            return False

        # returning non-False reconnects the stream, with backoff.
def on_data( self, status ):
    print("Entered on_data()")
    print(status.text, flush = True)
    return True
...
user = api.verify_credentials()
# this is just for getting user. without this also connection can be established
if user:
    print(user.id)
    print('started')
twitter_stream=Stream(auth,StdOutListener())
print('Stream created...')
twitter_stream.filter(follow=[user.id_str], is_async=True)