【发布时间】:2018-10-12 18:23:36
【问题描述】:
我正在使用 tweepy 玩一个 twitter 机器人。
我已经根据推文中包含的单词(例如我的触发短语)成功过滤了代码,执行以下操作:
myStreamListener = MyStreamListener()
myStream = tweepy.Stream(auth = api.auth, listener=MyStreamListener())
myStream.filter(track=['my trigger phrase'])
这很好用。
但我希望我的代码在某个用户发推文时过滤(例如“someuser”)。
我试过了:
myStreamListener = MyStreamListener()
myStream = tweepy.Stream(auth = api.auth, listener=MyStreamListener())
myStream.filter(follow=['someuser'])
但是当我运行代码时,一两秒后,它停止了,没有输出。
任何帮助都会很棒。
总之,我希望能够在某个用户发推文时做点什么。
整个代码:
import tweepy
import time
import sys
import inspect
consumer_key = 'xxxxxxxxxxxxxxxxxxx'
consumer_secret = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
access_token = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
access_token_secret = 'xxxxxxxxxxxxxxxx'
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
auth.secure = True
api = tweepy.API(auth)
class MyStreamListener(tweepy.StreamListener):
def on_status(self, status):
if status.user.screen_name.encode('UTF-8').lower() == 'someuser':
print 'TWEET:', status.text.encode('UTF-8')
print 'FOLLOWERS:', status.user.followers_count
print time.ctime()
print '\n'
myStreamListener = MyStreamListener()
myStream = tweepy.Stream(auth = api.auth, listener=MyStreamListener())
myStream.filter(follow=['someuser'])
【问题讨论】:
-
你能把
MyStreamListener的代码贴出来吗? -
抱歉。现在已经发布了上面的所有内容。
-
尝试从您的
on_status方法中删除if语句。filter方法应该只返回正确的推文。 -
当我摆脱 if 语句时,同样的事情发生了 - 代码运行了几秒钟然后停止。没有错误消息,我只是回到我的终端提示符。
-
实际上,问题似乎是最后一行。当我将“跟随”更改为“跟踪”时,它就起作用了。但我相信这只会帮助你跟踪推文中是否有作品。也许 follow 不是正确的使用方法。