我是新来的。并尝试实现一个api,该api可以监听新的tweet以获得@ the或屏幕名称。
tweets = api.user_timeline(screen_name=username)但它并不是在听新的推特。你能帮我理解一下它是如何实现的吗?这样每当推特上都有“@ tweet”。api应立即侦听
发布于 2020-05-09 11:20:58
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)发布于 2020-05-07 19:04:33
创建StreamListener
Tweepy的on_data方法可以方便地将数据从状态传递到on_status方法。创建类MyStreamListener,从StreamListener继承并覆盖on_status。
import tweepy重写tweepy.StreamListener以向on_status添加逻辑
class MyStreamListener(tweepy.StreamListener):
def on_status(self, status):
print(status.text)创建流
需要一个API来为身份验证提供正确的凭据。一旦我们有了API和状态侦听器,我们就可以创建流对象了。
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.发布于 2020-05-07 13:30:59
首先,使用这获取他们的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 accounthttps://stackoverflow.com/questions/61654519
复制相似问题