如果有人对Tweepy有很多经验,我们将不胜感激。我正在编写一个GUI应用程序,通过Tkinter
Entry
窗口小部件来获取用户输入,以过滤返回的推文。
我有一个侦听器类,它是在Tweepy文档中指定的,并添加了这个,它只是将推文文本添加到定义的tweet_box
,这是一个Text
小部件来显示推文
def on_data(self, data):
tweet = json.loads(data)
tw = tweet['text']
tweet_box.insert(tk.END, tw)
tweet_box.insert(tk.END, "\n")
tweet_box.see(tk.END)
time.sleep(2)
return True
然后我使用此过滤推文;
auth = OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_secret)
self.listener = TwListener()
streamer = Stream(auth, self.listener)
streamer.filter(track=self.search_field.get())
search_field.get()
方法来自Entry
窗口小部件,用户输入要过滤的字词。
所以我的理解是search_field
中的任何内容,在调用.get()
方法时,您应该能够返回该值以供使用。在测试中,只需打印出所述值 - 它就可以了。然而,当它进入过滤器的tweepy包装器时,它似乎不会占用整个值,而是看起来是在逐个字母的基础上执行搜索。同样,如果用户输入了Python'它会搜索P或Y或T等。
我真的无法理解为什么会这样,有没有人有类似的经历?
答案 0 :(得分:2)
“track参数是要流式传输的搜索词数组。”
您的代码应该将单个字符串包装在如下列表中:
streamer.filter(track=[self.search_field.get()])