【问题标题】:Tweepy performing search only on letters not whole wordTweepy 仅对字母而不是整个单词执行搜索
【发布时间】:2016-05-03 03:24:32
【问题描述】:

如果有人对 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 等。

我真的不明白为什么会这样,有没有人有类似的经历?

【问题讨论】:

    标签: python tweepy


    【解决方案1】:

    Streaming With Tweepy 状态:

    “track 参数是要流式传输的搜索词数组。”

    您的代码应该将单个字符串包装在这样的列表中:

    streamer.filter(track=[self.search_field.get()])
    

    【讨论】:

    • 我可以发誓我已经尝试过了!按照您的建议尝试,但它确实有效 - 非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-13
    • 1970-01-01
    • 2021-06-05
    • 2015-11-29
    • 1970-01-01
    • 1970-01-01
    • 2016-07-26
    相关资源
    最近更新 更多