首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过tweepy @tweepy收听新的推文?

如何通过tweepy @tweepy收听新的推文?
EN

Stack Overflow用户
提问于 2020-05-07 09:37:36
回答 3查看 1.7K关注 0票数 3

我是新来的。并尝试实现一个api,该api可以监听新的tweet以获得@ the或屏幕名称。

代码语言:javascript
复制
tweets = api.user_timeline(screen_name=username)

但它并不是在听新的推特。你能帮我理解一下它是如何实现的吗?这样每当推特上都有“@ tweet”。api应立即侦听

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-05-09 11:20:58

代码语言:javascript
复制
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)
票数 2
EN

Stack Overflow用户

发布于 2020-05-07 19:04:33

创建StreamListener

Tweepy的on_data方法可以方便地将数据从状态传递到on_status方法。创建类MyStreamListener,从StreamListener继承并覆盖on_status。

代码语言:javascript
复制
import tweepy

重写tweepy.StreamListener以向on_status添加逻辑

代码语言:javascript
复制
class MyStreamListener(tweepy.StreamListener):

    def on_status(self, status):
        print(status.text)

创建流

需要一个API来为身份验证提供正确的凭据。一旦我们有了API和状态侦听器,我们就可以创建流对象了。

代码语言:javascript
复制
myStreamListener = MyStreamListener()
myStream = tweepy.Stream(auth = api.auth, listener=myStreamListener)

启动流

代码语言:javascript
复制
myStream.filter(track=['python'])

myStream.filter(follow=["2211149702"])

异步流

代码语言:javascript
复制
myStream.filter(track=['python'], is_async=True)

处理错误

代码语言:javascript
复制
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.
票数 4
EN

Stack Overflow用户

发布于 2020-05-07 13:30:59

首先,使用获取他们的twitter用户id。

然后,使用这个:

代码语言:javascript
复制
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
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61654519

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档